
문제링크 문제 풀이 과정 이 문제를 잘 보면 f(n) = f(n - 1) + f(n - 2) 피보나치 수열이라는 것을 알수 있다. 5 까지의 경우의 수이다. 칸이 3일때를 보면 칸 2일때와 1일때의 값을 더한 값이 된다. 칸이 4일때도 칸이 3일때와 2일때의 값을 더한 값이 칸이 4일때의 값이 된다. 따라서 이 문제가 피보나치 수열이라는 것을 알 수 있다. 피보나치수열은 재귀호출을 이용하여 풀이하는 것과 dp 배열을 사용하여 풀이 하는 방법이 있는데 이 문제는 재귀 호출을 이용하면 통과가 안된다. 또한 dp 을 선언 할때 배열의 칸을 n + 1 만큼 잡았었는데 이러면 케이스 1이 통과가 안된다. dp 배열의 길이를 매우 넉넉하게 잡거나 n + 2 만큼 잡으면 테스트 1이 통과가 된다. 전체 코드

문제 링크 문제 풀이 과정 체스 규칙을 잘 모르면 이 문제를 처음 접했을 때 난감할 수 있다. 사실 체스 규칙을 전혀 몰라서 퀸의 움직임에 대해서 먼저 검색했었다. 퀸은 오른쪽, 왼쪽, 위, 아래, 대각선으로 움직일 수 있다. 첫번째 퀸의 위치가 (0, 1) 일때 엑스 친 부분은 퀸이 공격 가능한 위치이다. 이 문제는 서로 다른 퀸이 공격 못하게 배치해야 되므로 다음 퀸의 자리는 (1, 3) 이 된다. 3번째 줄에는 퀸을 둘 수 있는 곳이 한곳밖에 없다. 4번째 퀸까지 배치가 가능하므로 서로다른 퀸이 공격 못하게 하는 위치가 된다. 대부분 구글에서는 1차원 배열로 풀이 하였지만, 1차원 배열보다는 직관적인 2차원배열이 이해가 잘되서 2차원 배열로 풀이 하였다. 퀸이 공격이 가능한 자리를 표시하는 visi..

문제링크 문제 풀이 과정 효율성을 통과하기 위해서 HashMap 을 사용하여 문제를 접근 하였다. HashMap 의 key 는 현재 지정한 방 번호이며, value 값은 현재 지정한 방의 다음 위치를 나타낸다. 예약하고자 하는 방의 번호가 예약 되었는지 여부를 containsKey 를 통해서 빠르게 찾을 수 있다. 키가 존재 하면 이미 예약된 방이며, 키가 없다면 예약이 가능하다. 이 문제는 재귀방식으로 코드를 작성해야지 효율성 테스트를 통과할 수 있다. 처음에는 재귀 방식이 아닌 반복문으로 작성 하였는데 정확성은 맞지만, 효율성에서 모두 다 통과하지 않는 상황이 생긴다. 전체코드

문제 링크 문제 풀이 과정 이 문제는 탐색을 통해서 해결해한다. 다이나믹 프로그래밍으로 해결 하기위해서는 우선 dp 용 배열을 하나 만들어 둔다. 탐색 할때 첫번째 행과 열일 때는 별도의 탐색을 하지 않는다 첫번째 열과 행이 아니면서 1일때는 현재 기준으로 위, 왼쪽, 왼쪽 대각선의 값을 확인 해봐야한다. 그 중에서 최소값에다가 + 1을 한 값이 사각형의 크기가 된다. (1, 1) 인 경우에는 현재값이 1이라 위, 왼쪽, 왼쪽 대각선의 값을 비교해야한다. 이 세개의 최소 값은 0 이고 이 값에 + 1한 값은 1이 된다. (2, 2) 일때는 위, 왼쪽, 왼쪽 대각선의 값의 최솟값이 1이며, 이 값에 + 1 하면 2가 된다. 여기서 나온 2는 이 사각형의 크기가 된다. 전체 코드

문제링크 문제 풀이 과정 스트림과 람다식으로 간단하게 코드를 작성 할 수 있었다. 코드 실행 시에 11번 케이스만 오류가 나고 나머지는 모두 통과가 되었다. 반례를 생각해보니 0,0,0,0,0 일때는 0이 return 이 되어야 한다는 점이다. 문자열이기때문에 0,0,0,0,0 일때 00000이 나온다. 이것을 해결하기 위해서 코드 초반 부분에 배열의 전체 합을 구한 다음 합이 0일 때는 return 0으로 하는 것으로 해결이 되었다. int sum = Arrays.stream(numbers).sum(); if(sum == 0){ return "0"; } 전체 코드

문제 설명 네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. 참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다. 숫자 영단어 0 zero 1 one 2 two 3 three 4 four 5 five 6 six 7 ..
- Total
- Today
- Yesterday
- 코테 준비
- 개발자 취준
- 프로그래머스
- 프로그래머스 자바
- 코테준비
- java
- 자바
- 백준
- 알고리즘
- 코딩테스트
- 코딩테스트 공부
- 개발자 면접 준비
- 코딩테스트 준비
- 기술 면접 준비
- 주니어 개발자 취업 준비
- 알고리즘 공부
- 제로베이스 백엔드 스쿨
- 코딩테스트공부
- 취업준비
- 개발자 취업 준비
- 제로베이스 백준 장학금
- 백엔드 개발자
- 코테공부
- 프로그래머스 카카오
- 자바공부
- 취업 준비
- 백엔드 개발자 취업 준비
- 백엔드 개발자 기술 면접 준비
- 알고리즘공부
- 취준
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |