목록python (59)
rueki
현재 시점을 큐에 넣고 그 다음 좌표값으로 동서남북으로 움직이며 계속 탐색하는 방법으로 접근 다음 좌표의 값이 0이면 패스, 1이면 이전 값에 누적시키며 기록하여 최종 기록 나올 때까지 탐색하게 된다. from collections import deque #bfs 문제 n, m = map(int, input().split()) graph = [] for _ in range(n): graph.append(list(map(int,input()))) #상하좌우 dx = [-1,1,0,0] dy = [0,0,-1,1] def bfs(x, y): #queue 선언 queue = deque() queue.append((x, y)) #큐가 빌 때까지 while queue: x, y = queue.popleft() f..
https://www.acmicpc.net/problem/2023 2023번: 신기한 소수 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수 www.acmicpc.net 자리 수를 늘려가며 계속해서 소수가 맞는지 확인하는 것이 초점인 문제이다. 첫 자리의 경수 4,6,8,9는 이미 소수가 아니기 때문에 제외하고 2,3,5,7로 시작을 한다. 처음 예시 2 - 1 (소수판별) -> 소수가 맞다면 자리수 확장 후 다시 소수 판별... -> N 자리가 될 때까지 (21은 소수가 아니기에 다음은 23을 판별) 231로 확장 되고 231은 소수가 아니기에 다음은..
https://www.acmicpc.net/problem/11286 11286번: 절댓값 힙 첫째 줄에 연산의 개수 N(1≤N≤100,000)이 주어진다. 다음 N개의 줄에는 연산에 대한 정보를 나타내는 정수 x가 주어진다. 만약 x가 0이 아니라면 배열에 x라는 값을 넣는(추가하는) 연산이고, x가 0 www.acmicpc.net 입력 숫자가 0이 아닌 경우에 우선순위 큐에 입력하고 0이 되면 출력하는 구조이다. 대신 절대값이 작은것을 출력하기에 단순하게 우선순위를 정하면 잘못된 출력을 내보내게 된다. 그래서 우선순위 큐에 절대값과 원래 입력값을 같이 입력받는다. 이렇게 되면 절대값 기준으로 정렬을 하게 되며 같은 경우에 원래 값 순서대로 나열되게 된다. import sys from queue impo..
https://www.acmicpc.net/problem/2164 2164번: 카드2 N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가 www.acmicpc.net - 첫 카드 버리기 - 두번째 카드는 맨 뒤로 - 마지막 남을 때까지 반복 배열 양쪽끝을 자유자재로 넣고 빼고 하는 것은 Queue 사용하는 것이 편하다. from collections import deque n=int(input()) card = [i for i in range(1, n+ 1)] q = deque(card) while len(q) > 1: first_del_card = q.pop..