https://www.acmicpc.net/problem/14942 14942번: 개미 자연수 n이 주어진다. n은 방의 개수이다. (1 ≤ n ≤ 105) 다음 n개의 줄에는 차례대로 현재 각각의 개미가 보유하고 있는 에너지 값이 주어진다. i+1번째 줄에는 i번째 방에 있는 개미가 가진 에너 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 각 노드에 개미가 한마리 존재하며, 에너지가 주어진다. 개미들은 최대한 최상단 (1번 노드)로 이동해야 한다. 간선에는 이동하는데 필요한 에너지가 주어진다. 개미들이 최대한 1번노드 (최상단)으로 이동할 때 멈추게 되는 위치를 출력하는 문제이다. 코드 from collections import deque input = __import__('sys')...
https://www.acmicpc.net/problem/1700 1700번: 멀티탭 스케줄링 기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 준규는 N개를 꼽을 수 있는 멀티탭에 전기용품을 꽃아 사용한다. K번 전기용품을 순서대로 사용할 때 전기용품의 플러그를 최소로 뽑는 횟수를 구하는 문제이다. 코드 n, k = map(int, input().split()) arr = [0] + list(map(int, input().split())) # 몇 번 이후에 도착하는지 체크하는 배열 visit = [[fl..
https://www.acmicpc.net/problem/17071 17071번: 숨바꼭질 5 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 500,000)에 있고, 동생은 점 K(0 ≤ K ≤ 500,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 1. 수빈이와 동생의 좌표가 주어진다. 2. 수빈이는 동생의 좌표로 이동해야한다. 3. 수빈이의 이동 방법은 -1, +1, *2 총 3가지 이며 모두 1초가 소요된다. 4. 동생은 매초 1, 2, 3만큼 앞으로만 이동한다. 코드 from collections import deque n, k = map(int, input().s..
https://www.acmicpc.net/problem/13913 13913번: 숨바꼭질 4 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 1. 수빈이와 동생의 좌표가 주어진다. 2. 수빈이는 동생의 좌표로 이동해야한다. 3. 수빈이의 이동 방법은 -1, +1, *2 총 3가지 이며 모두 1초가 소요된다. 4. 동생을 잡는 최소 시간과 경로를 구하는 문제. 코드 from collections import deque n, k = map(int, input().split..
https://www.acmicpc.net/problem/14226 14226번: 이모티콘 영선이는 매우 기쁘기 때문에, 효빈이에게 스마일 이모티콘을 S개 보내려고 한다. 영선이는 이미 화면에 이모티콘 1개를 입력했다. 이제, 다음과 같은 3가지 연산만 사용해서 이모티콘을 S개 만 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 1. 현재 이모티콘 복사 2. 복사된 클립보드의 이모티콘 붙여넣기 3. 현재 이모티콘 하나 삭제 이 3가지 기능을 통해 주어진 입력의 수의 이모티콘을 만드는 문제이다. 이때 클립보드의 이모티콘이 0개일 때 붙여넣을 수 없다. 코드 from collections import deque input = __import__('sys').stdin.readline targe..
https://www.acmicpc.net/problem/17425 17425번: 약수의 합 두 자연수 A와 B가 있을 때, A = BC를 만족하는 자연수 C를 A의 약수라고 한다. 예를 들어, 2의 약수는 1, 2가 있고, 24의 약수는 1, 2, 3, 4, 6, 8, 12, 24가 있다. 자연수 A의 약수의 합은 A의 모든 약수를 더 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 주어진 숫자 n까지의 약수의 합을 구하는 문제이다. 테스트 케이스처럼 2가 입력되었을때, 1의 약수는 [1], 2의 약수는 [1, 2]이다. 따라서 2까지의 수들의 모든 약수의 합은 4가 된다. 코드 input = __import__('sys').stdin.readline # 약수 구하기 divisor = [..
https://www.acmicpc.net/problem/5052 5052번: 전화번호 목록 첫째 줄에 테스트 케이스의 개수 t가 주어진다. (1 ≤ t ≤ 50) 각 테스트 케이스의 첫째 줄에는 전화번호의 수 n이 주어진다. (1 ≤ n ≤ 10000) 다음 n개의 줄에는 목록에 포함되어 있는 전화번호가 www.acmicpc.net 문제 문제 해석 전화번호 목록이 주어진다. 전화번호 목록이 일관성을 유지하는 것이 이 문제의 목표이다. 일관성이란 원하는 전화번호를 누를 때 원하는 전화번호가 정상적으로 누르도록 작동하는 것이다. 즉, 911이라는 전화번호가 존재하고, 91125426이라는 전화번호가 존재하면 두번째 전화번호를 누르면 911이 전화가 걸리기 때문에 조건에 어긋난다. 코드 input = __i..
https://www.acmicpc.net/problem/1306 1306번: 달려라 홍준 첫째 줄에는 뛰는 코스의 길이, 즉 칸수 N과 홍준이의 시야의 범위 M이 주어진다. 시야가 M이라고 하면 현재 위치에서 앞뒤로 M-1칸까지 광고판이 보이는 것이다. (1 ≤ M ≤ N ≤ 1,000,000) 두 번째 www.acmicpc.net 문제 해석 홍준이는 앞으로 달린다. 홍준이의 시야가 주어지는데 달리면서 홍준이의 시야도 바뀌게 된다. 이때 홍준이의 시야에 존재하는 가장 큰 값 (가장 센 불빛)을 찾는 문제이다. 코드 from collections import deque input = __import__('sys').stdin.readline n, m = map(int, input().split()) ar..
https://www.acmicpc.net/problem/20291 20291번: 파일 정리 친구로부터 노트북을 중고로 산 스브러스는 노트북을 켜자마자 경악할 수밖에 없었다. 바탕화면에 온갖 파일들이 정리도 안 된 채 가득했기 때문이다. 그리고 화면의 구석에서 친구의 메시지를 www.acmicpc.net 문제 해석 파일 이름이 주어진다. 확장자별로 분리하고, 확장자 별 파일의 개수를 확장자의 사전식 오름차순으로 출력하는 문제이다. 코드 input = __import__('sys').stdin.readline n = int(input()) d = {} id = [] for _ in range(n): a, b = input().strip().split('.') if b in d: d[b] += 1 else:..
https://www.acmicpc.net/problem/18405 18405번: 경쟁적 전염 첫째 줄에 자연수 N, K가 공백을 기준으로 구분되어 주어진다. (1 ≤ N ≤ 200, 1 ≤ K ≤ 1,000) 둘째 줄부터 N개의 줄에 걸쳐서 시험관의 정보가 주어진다. 각 행은 N개의 원소로 구성되며, 해당 위치 www.acmicpc.net 문제 해석 n * n 크기의 배열에 바이러스가 1~ 1000개가 존재한다. 바이러스는 상하좌우로 번지며 1번부터 차례대로 한칸씩 번진다. 빈칸이여야 바이러스가 번질 수 있다. S초 이후에 x, y칸에 존재하는 바이러스를 출력하라 (없다면 0 출력) 코드 from collections import deque input = __import__('sys').stdin.re..