https://www.acmicpc.net/problem/12100 12100번: 2048 (Easy) 첫째 줄에 보드의 크기 N (1 ≤ N ≤ 20)이 주어진다. 둘째 줄부터 N개의 줄에는 게임판의 초기 상태가 주어진다. 0은 빈 칸을 나타내며, 이외의 값은 모두 블록을 나타낸다. 블록에 쓰여 있는 수는 2 www.acmicpc.net 문제 해석 2048 게임 시스템을 구현해서 5번 이동할 때 최대가 되는 값을 구하는 문제 코드 1. 제출 n = int(input()) arr = [] for _ in range(n): arr.append(list(map(int, input().split()))) def turn(current_arr): size = len(current_arr) temp_arr = [..
https://www.acmicpc.net/problem/1967\ 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 문제 & 테스트 케이스 문제 해석 노드에서 노드까지 가장 먼 거리를 찾는 문제. 코드 1. 제출 from collections import deque n = int(input()) adj = [[] for _ in range(n + 1)] for _ in range(n - 1): a, b, c = map(int, input().split()) adj[a].append((b, ..
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')...
파이썬은 C++이나 자바와 다르게 객체를 상속받아 정렬 조건을 설정할 필요가 없다. sorted 함수에 람다식을 사용하여 원하는 조건에 맞게 다중 정렬 할 수 있다. 알고리즘 풀이에 그리디나, 정렬 문제에 자주 사용하는데 사용할 때 마다 헷갈리는 경우가 있어서 정리해놓으려 한다! result = [["alice",'B',87], ["tom",'C',70], ["hooni",'A',100], ["chulsoo",'C',72], ["masao",'B',88], ["sato",'A',100],] 다음과 같이 이름, 성적, 점수 로 나열된 배열이 있다고 하자. result = sorted(result, key = lambda x: [1순위 조건, 2순위 조건, ...]) 먼저 람다식의 기본 문법은 다음과같다. ..
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..