2020 - 블록 이동하기
https://programmers.co.kr/learn/courses/30/lessons/60063 코딩테스트 연습 - 블록 이동하기 [[0, 0, 0, 1, 1],[0, 0, 0, 1, 0],[0, 1, 0, 1, 1],[1, 1, 0, 0, 1],[0, 0, 0, 0, 0]] 7 programmers.co.kr [ 문제풀이 ] 2020 카카오 블라인드 기출 마지막 문제이다. 18. 19. 20년도 기출을 풀어보면서 느끼는 거지만 문제 배치가 난이도 순인 것은 아닌 것 같다. 전형적인 bfs + dp 문제이다. 현재 로봇의 위치에서 상하좌우로 이동 및 회전할 수 있는 경우의 수를 bfs(최소 거리)를 통해 탐색해주면서 dp를 활용해 중복 방문을 해결하면 쉽게 해결할 수 있다. 로봇의 상태는 2가지..
2021. 8. 8.
2020 - 기둥과 보 설치
https://programmers.co.kr/learn/courses/30/lessons/60061 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr [ 문제풀이 ] 별다른 알고리즘 필요 없이 주어진 조건대로 구현하면 되는 문제지만 ..
2021. 8. 8.
2020 - 자물쇠와 열쇠
https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr [ 문제풀이 ] 4방향 회전한 Key로 자물쇠 Lock을 채울 수 있는지를 확인하는 전형적인 완전 탐색 문제이다. key를 회전하는 것은 쉬운데 회전한 후 lock과 어떻게 비교할 것인지가 조금 난해한 문제이다. 모든 key를 주어진 lock으로 비교하기에는 인덱스 관리하기가 상당히 까다롭다. 이를 쉽게 해결하기 위해 기존의 lock을 확장시켜 인덱스를 넓혀주도록 하자. Key의 크기 M은 항상 lock의 크..
2021. 8. 8.