목록코딩테스트준비 (63)
원하는 것은 뭐든지
문제풀이입력으로 주어지는 keymap 배열에 String 들은 key 하나에 할당된 글자들이다.한번 혹은 여러 번 클릭하여 해당 문자를 입력할 수 있다. 입력으로 주어지는 targets는 만들어야 할 문자열이다. 주어진 keymap을 가지고 최소한 몇 번을 클릭해서 targets에 있는 문자를 만들 수 있는지 배열에 담아 return 하면 된다. 제출 1 - 정답class Solution { public int[] solution(String[] keymap, String[] targets) { int[] answer = new int[targets.length]; //정답 배열 int[] alpha = new int[26]; //알파벳 인덱스 담을 배열 for..
문제풀이마법의 세계에서 살면 마법으로 왔다 갔다 하면 될 거 같은데 굳이 엘리베이터를 타는 민수는 마법의 돌을 최소만 사용해서 자신의 집에서 0층으로 내려가고 싶다. 이 엘리베이터는 10^c 씩만 움직일 수 있는데 한 번 움직일 때 하나의 돌이 사용된다. 입력으로 층 수가 주어지면 최소로 사용해야 하는 마법의 돌을 구하는 문제이다. 예제로 주어진 16 같은 경우 +1만큼 네 번 -10만큼 두 번 해서 여섯 번이다.2554는 -1로 네 번 -10으로 다섯 번 -100으로 다섯 번 -1000으로 두 번 해서 16번이다. 제출 1 - 오답class Solution { public int solution(int storey) { int answer = 0; String str =..
문제풀이n이 입력으로 들어왔을 때, 한 칸 혹은 두 칸을 움직여서 갈 수 있는 방법의 개수를 찾으면 된다.규칙을 찾으면 되는 문제인데, 처음에 생각하기를 1칸씩만 움직여서 가는 방법에서 거기서 선택해서 두 칸을 가는 방법으로 바꿔주면 된다고 생각했다. 방법의 개수를 찾는 데에는 적당한 방법이었으나 결과적으로는 그걸 찾는 방법이 아니었다. n = 1 일 때, (1)... 1개n = 2 일 때, (1,1), (2) ... 2개n = 3 일 때, (1,1,1), (2,1), (1,2)... 3개n = 4 일 때, (1,1,1,1), (2,1,1), (1,2,1), (1,1,2), (2,2)... 5개n = 5 일 때, (1,1,1,1,1), (2,1,1,1), (1,2,1,1), (1,1,2,1), (1,1,..
문제풀이입력으로 들어오는 n번째 피보나치 수를 출력하면 됨.제출 1 - 오답class Solution { public int solution(int n) { int answer = 0; answer = fibo(n) % 1234567; return answer; } public int fibo(int n){ if(n == 0) return 0; if(n == 1) return 1; return fibo(n-1) + fibo(n-2); }} 시간초과가 날 것이라고 알고 있었지만 재귀를 사용해서 기본적인 피보나치수열을 출력하도록 했다.제출 2 - 오답class Solution { pub..