[프로그래머스 / Java] 숫자 짝꿍
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
풀이Map 형식으로 X, Y의 문자 빈도를 계산한다.9부터 0까지 내림차순으로 반복문을 만든다.두 개의 Map의 같은 키가 있으면 값 중 작은값 만큼 숫자를 추가한다(String)결과에 따라 리턴값을 변경한다.import java.util.*;class Solution { public String solution(String X, String Y) { // 두 숫자의 각 숫자 빈도를 저장할 맵 생성 Map countX = new HashMap(); Map countY = new HashMap(); // X의 숫자 빈도 계산 for (char c : X.toCharArray()) { countX.put(c, countX..
[프로그래머스 / Java] 점 찍기
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
첫번째 풀이import java.util.*;class Solution { public long solution(int k, int d) { long answer = 0; for(int a=0; a 결과 시간초과 몇개와 다수의 실패가 보인다.제한 사항의 k와 d의 길이가 100만이여서 시간초과가 뜨는 것 같다.이 방식은 계속 시간복잡도가 클거 같아 다른 방식을 생각해보았다.  두번째 풀이import java.util.*;class Solution { public long solution(int k, int d) { long answer = 0; for(int a=0; a 결과일단 시간초과 문제는 해결하고 테스트 수행 속도도 반으로 줄었다. 세번..
[프로그래머스 / Java] 혼자 놀기의 달인
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 해답 코드import java.util.*;class Solution { static boolean[] visit; static int depth; public int solution(int[] cards) { int answer = 1; int len = cards.length; visit = new boolean[len]; List list = new ArrayList(); for (int i = 0; i  2. 해설노드들이 이어져있고 하나씩 탐색하다가 탐색 할 수 없는 곳에서 멈춘다 -> DFS 문제 solution 메서드는 배열을 순회하면서 방문하지 않은 노드를 발견하면 DFS를 시작합니다. open 메서드는 해당..
[프로그래머스 / Java] 과일장수
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 문제  2. 생각문제가 길긴한데 찬찬히 살펴보면과일장수가 가능한 많은 사과를 팔았을 때 -> 아무리봐도 상자 몇개 제한 이라는 말이 없다 -> 비싼 순 m개씩 짤라서 팔면된다.Ex) 입출력 예시 1정렬 : 1 1 1 / 2 2 3 3 => 상자 1개 나옴 m = 4 개씩 묶기 : (위에서 3개 = 2)*m = 2 * 4 = 8Ex) 입출력 예시 2정렬 : 1 1 2 / 2 2 2 / 4 4 4 / 4 4 4 => 상자 4개 나옴 m = 3 개씩 묶기 : (4*m) (4*m) + (2*m) + (1*m) 계산 : 4*3+ 4*3 + 2*3 + 1*3 = 24+6+3 = 33-> 음... 정렬하고 m개씩 짜르고... 그 안에서 계산하면 된다... 3. 코드import java.util.*;class S..
[프로그래머스 / Java] 하샤드 수
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 문제 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 2. 문제 해석 받은 숫자의 각 자리수의 합이 나누어 떨어져야한다. 예를들어 1111을 받으면 1+1+1+1 = 4, 1111이 4로 나누어 떨어지면 하샤드 수 이다. 그럼 각 자리수를 더해서 직접 나누어 보면 되지않을까? 3. 첫번째 풀이 class Solution { public boolean solution(int x) { boolean answer = true; int x2 = x; int tmp = 0; if (x > 1000) { int a = x/1000; tmp += a; //1000..
[Java / 코딩테스트] 겹쳐진 압축 해제
·
알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트
1. 생각 전형적인 스택 문제 ")"까지 보고 반복문 2. 코드 import java.util.*; class Solution { public String solution(String s){ String answer = ""; Stack st = new Stack(); for (char c : s.toCharArray()) { if(c == ')') { String tmp = ""; while (!st.empty()) { String t = st.pop(); if(t.equals("(")) { String num = ""; while (!st.empty() && Character.isDigit(st.peek().charAt(0))) { num = st.pop() + num; } String res = "..
마볼링
'알고리즘 & 코딩 테스트/Java로 푼 코딩 테스트' 카테고리의 글 목록