[백준/Python] 11866. 요세푸스 문제 0
·
코딩테스트/BAEKJOON
✏️ 문제유형: 구현/ 큐https://www.acmicpc.net/problem/11866  ✏️ 풀이 N명 중에서 K번째 사람을 계속해서 제거하는 문제이다.  위의 예제로 이해를 해보면, 7명 중 3번째 사람을 계속 제거한다.  앞에서 2명 pop-push하고 3번째 사람은 pop만 반복하면 되는데, 큐의 동작을 간단히 나열해보면 아래와 같다.  1 2 3 4 5 6 7pop-push: 1 2 / only pop: 3 4 5 6 7 1 2 pop-push: 4 5 / only pop: 6 7 1 2 4 5pop-push: 7 1 / only pop: 24 5 7 1 ... 반복  이를 코드로 나타내면 아래와 같다. from collections import dequen, k = map(int, inp..
[백준/Python] 14940. 쉬운 최단거리
·
코딩테스트/BAEKJOON
📌문제 유형: 그래프 탐색 (BFS)https://www.acmicpc.net/problem/14940   📌 풀이  전형적인 BFS 문제이다. 단, 시작점이 (0,0) 이 아니라 2 값을 갖고 있는 위치부터라는 점! 따라서 먼저 2의 값을 가진 위치를 찾아야 한다.  그 뒤에 모든 지점까지의 최단거리를 출력하라고 한다. 최단거리는 BFS로 구할 수 있다.  이때 움직일 수 있는 방향이 상하좌우이므로, dx/dy를 선언해 bfs() 안에서 for문을 통해 한 지점이 갈 수 있는 상하좌우 4곳을 살펴볼 수 있도록 한다. 이때 갈 수 있는 곳은 queue에 담는다.  여기서 포인트는, 거리 값을 visited에 누적합으로 표현한다는 점이다.  1. 모든 지점에 대해 visited[i][j] = -1로 초..
[백준/Python] 1764. 듣보잡
·
코딩테스트/BAEKJOON
https://www.acmicpc.net/problem/1764   듣지도, 보지도 못한 이름을 찾아야 하니까 교집합을 찾으면 될 것이다.  집합 set()으로 바꿔주고,  arr1.intersection(arr2) 를 해주면 차집합이 된다.  N, M = map(int, input().split())arr1 = []arr2 = []for _ in range(N): arr1.append(input())for _ in range(M): arr2.append(input())arr1 = set(arr1); arr2 = set(arr2)ans = list(arr1.intersection(arr2))ans.sort()print(len(ans))for a in ans: print(a)