목록코딩 테스트 (197)
미소를뿌리는감자의 코딩
https://school.programmers.co.kr/learn/courses/30/lessons/43162?language=python3 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 이번 문제는 DFS로 해결하였다.양방향이기 때문에 visited 리스트 만들어서 방문 여부를 확인해 주기만 하면 된다. (일차원)dfs를 돌 때, 스스로의 노트에 대해서 dfs를 돌게 되면 무한 루프가 돌게 될까봐 걱정을 하였다. [1][1] -> [1][1] 하지만, 초기에 visited[node] = True 로 대입 후, dfs를 시작하기 때문에 그럴 염려는 하지 않아도 되었다. def dfs(node, size, c..
1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 접근 방법처음에는 .remove를 바탕으로 문제를 해결해 보고자 하였다. import java.util.*;import java.util.Map.Entry;import java.util.stream.Collectors;class Solution { public static String solution(String[] participant, String[] completion) { Map particip..

1. 문제https://school.programmers.co.kr/learn/courses/30/lessons/258712?language=python3 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 2. 접근 방법우선, friends들에 대해서 idx 번호를 부여하여, 2중 리스트에서 사용할 수 있도록 하였다. 따라서 muzi에게는 0번, ryan에게는 1번, frodo 는 2, neo는 3의 idx가 부여되었다. 2중 리스트를 만들고, arr[0][2] 라면, 0번이 2번에게 받은 선물의 수를 나타내도록 코드를 구성하였다.또한, 주고 받은 것을 기록하기 위해 give_take이라는 2중 리스트를 ..
1. 문제https://www.acmicpc.net/problem/13549 2. 접근 방법BFS로 문제를 접근하였다. 이를 위해서 deque를 이용하였다.queue에서 먼저 pop이 된 것이 동생의 위치를 나타낸다면, 그것이 가장 빠르게 동생에게 접근하는 경우라고 판단하였다. 또한 memoization을 이용해 주어, 해당 위치에 접근했을 때의 cnt를 list에 저장해 주었다. 만약 cnt가 더 작다면, 해당 memoization을 갱신해주고, 해당 위치에서 방문 가능한 경우들 x-1, x+1, 2*x에 대해서 위치를 deque에 넣어주었다. 하지만, 순서가 중요했다. 우선순위가 있는 접근들을 먼저 queue에 넣어주어야 했다.우선순위는 2*x, x-1, x+1이다. 2*x의 경우 직관적으로 우선순위..