목록코딩 테스트 (196)
미소를뿌리는감자의 코딩
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의 경우 직관적으로 우선순위..
1. 문제https://www.acmicpc.net/problem/1600 2. 접근 방법처음에 i, j 로 visited list를 만드는 것을 생각하였다가, k의 값이 유동적일 것이라 힘들 것 같다는 생각을 하였었다.하지만 3차원 리스트가 존재했기 때문에, 이를 이용하면 되었다. 코드 풀이 중에서 처음 시도는 import queue를 하는 것이었다. 하지만, 시간 초과와 런타임 에러가 지속되었고 다른 코드를 확인하다가 from collections import deque를 적용한 코드를 확인하게 되었다. 이에 queue -> deque로 import를 바꾸었고, 통과할 수 있었다. 과연, 둘의 차이가 무엇일까? import queuequeue.Queue()로 사용이 된다. 이는 멀티스레딩 환경에서의..