목록파이썬 알고리즘 (4)
코딩딩딩

https://www.acmicpc.net/problem/5618 5618번: 공약수 첫째 줄에 n이 주어진다. n은 2 또는 3이다. 둘째 줄에는 공약수를 구해야 하는 자연수 n개가 주어진다. 모든 자연수는 108 이하이다. www.acmicpc.net 1. 문제 설명 2개 ~ 3개의 수를 입력받아 공약수를 출력하는 문제 2. 문제 풀이 최대공약수는 입력받은 수들 중에서 가장 작은 수보다 클 수는 없다. #수 입력 numberList = list(map(int, input().split())) #최솟값 minNumber = min(numberList) 그러므로 1부터 가장 작은 수 까지 돌면서 입력받은 수를 모두 나누어 떨어지게 하는 그 수를 출력한다. #1 ~ 최솟값 for i in range(1, ..

https://www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 1. 문제 설명 한 단계마다 인접한 토마토가 익는 방식으로 토마토 전체가 다 익는 데 걸리는 시간을 구하는 문제 2. 문제 풀이 먼저 리스트에 토마토에 관한 정보를 입력받아 저장한다. box = [] for i in range(n): box.append(list(map(int, input().split()))) box를 돌면서 사과가 있는 위치에 대한 인덱스를 deque에 저장한다..

https://www.acmicpc.net/problem/18870 18870번: 좌표 압축 수직선 위에 N개의 좌표 X1, X2, ..., XN이 있다. 이 좌표에 좌표 압축을 적용하려고 한다. Xi를 좌표 압축한 결과 X'i의 값은 Xi > Xj를 만족하는 서로 다른 좌표의 개수와 같아야 한다. X1, X2, ..., XN에 좌 www.acmicpc.net 1. 문제 설명 수들을 입력받아서 자신보다 작은 수가 몇개 있는지 카운팅하는 문제 (수의 중복은 허용하지 않는다.) 2. 문제 풀이 먼저, 이 문제는 중첩반복문으로 풀게 되면 시간초과가 나오게 된다. 그러므로 다른 접근 방법으로 풀어야 한다. 잘 생각해보면 자신보다 작은 다른 수들이 몇개 있는지 카운트하는 것은 결국 오름차순으로 정렬된 리스트의 인..

https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍의 수가 주어 www.acmicpc.net 1. 문제 설명 문제에서 제시된 처럼 그래프를 구성하여 1번 컴퓨터와 연결된 컴퓨터를 탐색하는 그래프 탐색 문제. 2. 문제 풀이 그래프를 인접행렬로 구성한다. graph = [[] for _ in range(n+1)] #인접행렬 그래프 for _ in range(m): a, b = map(int, input().split()) graph[a].append(b) #a, b연결 graph[b].appen..