[프로그래머스] 게임 맵 최단거리
문제설명 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 유형 문제였다. 2차원 배열이 주어질 때, 특정 시작점에서 도착점까지의 최단거리 비용을 구하는 것이였다. 큐를 활용했고 방문 테이블을 따로 정의해주어서 방문 테이블을 방문 여부 체크와 거리 이동 칸 수를 계산하는 용으로 활용했다. 그리고 주어진 maps 테이블을 활용해서 벽인..
[프로그래머스] 튜플
문제설명 https://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 사고과정 문자열 형태로 주어지는 것을 보니 스택을 활용해야 하는 듯한 문제 느낌이 팍! 왔다. 크게 보면 스택 유형의 문제인 듯 하다. 문제에서 주의해야 할 점은 튜플의 부분집합 결과가 주어졌을 때, 이를 튜플로 변환해야 하는데 튜플의 원소 순서가 다르면 다른 것으로 간주한다는 점이다. 이를 어떻게 활..
[프로그래머스] 거리두기 확인하기
문제설명 https://programmers.co.kr/learn/courses/30/lessons/81302 코딩테스트 연습 - 거리두기 확인하기 [["POOOP", "OXXOX", "OPXPX", "OOXOX", "POXXP"], ["POOPX", "OXPXP", "PXXXO", "OXXXO", "OOOPP"], ["PXOPX", "OXOXP", "OXPOX", "OXXOP", "PXPOX"], ["OOOXX", "XOOOX", "OOOXX", "OXOOX", "OOOOO"], ["PXPXP", "XPXPX", "PXPXP", "XPXPX", "PXPXP"]] [1, 0, 1, 1, 1] programmers.co.kr 사고과정 문제를 풀기 위해서 크게 DFS 탐색을 활용해서 구현했다. 그리고 pla..
[프로그래머스] 행렬 테두리 회전하기
문제설명 https://programmers.co.kr/learn/courses/30/lessons/77485 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 사고과정 행렬을 90도 회전하는 문제가 아닌 행렬 형상은 유지하면서 위치를 시계방향으로 한칸씩 이동시켜야 했다.. 처음에 스와핑을 이용해서 구현하려 했지만 실패했다.. 그러면 테두리 해당하는 행렬을 뽑아서 일차원 리스트로 한 다음 한 칸 씩 이동시켜야 할까? 했지만 여러개의 쿼리가 주어지면서 이동시킨 값을 행렬 위치에 계속 갱신시켜야 ..