본문 바로가기

프로그래머스69

[2020 카카오 기출] 동굴 탐험 programmers.co.kr/learn/courses/30/lessons/67260 jacob님의 풀이(velog.io/@jacob0122/%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%A8%B8%EC%8A%A4-%EB%8F%99%EA%B5%B4-%ED%83%90%ED%97%98)를 참고하여 해결했습니다. BFS로 풀이를 했고, 특정 노드간에 생기는 선-후 관계를 before[], nxt[]로 표현했습니다. 또한 임의의 노드 A를 방문할 수 있었지만, 노드A와 선-후 관계에서 '선'에 위치하는 노드를 아직 방문하지 않은 경우 노드A를 waitingList라는 set에 넣어서 '선'에 위치하는 노드를 방문할 때 노드 A도 방문할 수 있도록 해줍니다. 이런식으로 BFS를 특수하게.. 2020. 9. 10.
[2020 카카오 기출] 외벽 점검 programmers.co.kr/learn/courses/30/lessons/60062 문제 해설(tech.kakao.com/2019/10/02/kakao-blind-recruitment-2020-round1/)을 보고 해결했습니다. 가장 중요한 건 원형으로 되어 있는 곳을 어떻게 탐색할 지 방법을 찾는 거 같습니다. 해설에 나와 있는 대로 인덱스를 하나씩 밀면서 뒤로 있는 인덱스값에는 + N만큼 더해줘서 아래처럼 원형으로 되어 있는 효과를 만드는 게 중요합니다. N = 12 [1, 5, 6, 10] [5, 6, 10, 13] [6, 10, 13, 17] [10, 13, 17, 18] 그리고 나서는 dist의 크기 제한을 보면 8로 크기가 작습니다. 그래서 비트 바스킹을 통해 (예시 5명) 00000 ~.. 2020. 9. 10.
[코딩테스트 연습] 땅따먹기 programmers.co.kr/learn/courses/30/lessons/12913 dp + 슬라이딩 윈도우로 해결할 수 있습니다. 현재 칸에서 어떤 칸을 밟을지 결정할 때는 오직 '이전 칸'의 정보만 가지고 있으면 되므로 dp테이블은 dp[2][N] 크기만 가져도 됩니다. dp 점화식은 dp[i+1][N] = max(dp[i][0], dp[i][1], dp[i][2], ... , dp[i][N-1]) + score[i+1][N] 입니다. 즉, N열이 아닌 이전 칸 중에 최댓값 + 이번 칸의 값을 더하면 점화식이 됩니다. 코드: github.com/cottory/algorithm/blob/master/PROGRAMMERS/PG12913.cc 2020. 9. 10.
[2018 카카오 기출] 추석 트래픽 programmers.co.kr/learn/courses/30/lessons/17676 Dltkddud님의 풀이(medium.com/@dltkddud4403/2018-%EC%B9%B4%EC%B9%B4%EC%98%A4-%EB%B8%94%EB%9D%BC%EC%9D%B8%EB%93%9C-%EC%BD%94%EB%94%A9%ED%85%8C%EC%8A%A4%ED%8A%B8-%EC%B6%94%EC%84%9D-%ED%8A%B8%EB%9E%98%ED%94%BD-450067ce84a8)를 참고하여 해결했습니다. 중요한 것은 아래 두 가지입니다. 1. 파싱 2. 무엇을 기준으로 골라야 최대 요청량을 알 수 있는가? 파싱은 코드를 참고하시면 될 듯 합니다. 1. 저는 시간 * 1000을 하여 Double을 Int로 취급하여 .. 2020. 9. 9.