[찾아라 프로그래밍 마에스터 - 게임 맵 최단거리]
문제 https://programmers.co.kr/learn/courses/30/lessons/1844 코딩테스트 연습 - 게임 맵 최단거리 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[0,0,0,0,1]] -1 programmers.co.kr 분석 및 해결 정말 대표적인 BFS, DFS 그래프 탐색 문제였습니다. 하지만 최단 거리를 구할 때는 BFS가 짱짱맨이므로 BFS를 이용했다 import java.util.*; class Solution { public static int[] dy = {-1, 1, 0, 0}; public static ..
2021. 7. 26.
[2019 카카오 개발자 겨울 인턴십] 튜플
문제 : programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 분석 및 해결 집합의 원소들을 가지고 순서를 알아맞혀야 하며, 이때 주의할 점은 집합은 원소의 순서가 바뀔 수 있다는 점이다. 따라서 나는 집합을 원소의 개수별로 Map에 저장하였고, 집합의 원소가 1개인 것부터 n개인 것까지 차례로 돌아가며 순서를 유추했다. import java.util.ArrayList; imp..
2021. 4. 3.
[2019 카카오 개발자 겨울 인턴십] 징검다리 건너기
문제 - programmers.co.kr/learn/courses/30/lessons/64062 코딩테스트 연습 - 징검다리 건너기 [2, 4, 5, 3, 2, 1, 4, 2, 5, 1] 3 3 programmers.co.kr 분석 처음에 문제 해결을 위해 '디딤돌의 숫자가 연속해서 K번 0이 되는 구간이 발생하는 경우'를 구하려고 했었다. 하지만 이 방식은 완전탐색으로 이어졌고, 효율성 측면에서 실패할 수 밖에 없었다. 결과적으로 풀이를 참고하였고, [이분탐색]을 활용해 문제를 풀 수 있었다. 풀이를 참고하며 놀랐던 점은 이분탐색을 적용하는 기준이 '징검다리를 건넌 니니즈 친구들의 수'였다는 것이다. 나는 단순히 디딤돌의 숫자에 초점을 맞춰 징검다리를 건널 수 있는 니니즈 친구들의 수를 구하려고 했었기..
2021. 3. 30.