Python 929

백준(Python) 3190번 뱀 풀이

Python으로 구현한 3190번 뱀 문제 풀이입니다. https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net n = int(input()) k = int(input()) data = [[0] * (n + 1) for _ in range(n + 1)] # 맵 정보 info = [] # 방향 회전 정보 # 맵 정보(사과 있는 곳은 1로 표시) for _ in range(k): a, b = map(int, input().split()) data[a][b] = 1..

[구현] 이코테 (파이썬) 외벽 점검 풀이

[문제] 레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함게 직접 리모델링하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매운 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 손상될 수도 있는 취약한 지점들이 있습니다. 따라서 내부 공사 도중에도 외벽의 취약 지점들이 손상되지 않았는지, 주기적으로 친구들을 보내서 점검을 하기로 했습니다. 다만, 빠른 공사 진행을 위해 점검 시간을 1시간으로 제한했습니다. 친구들이 1시간 동안 이동할 수 있는 거리는 제각각이기 때문에, 최소한의 친구들을 투입해 취약 지점을 점검하고 나머지 ..

[구현] 이코테 (파이썬) 치킨 배달 풀이

[문제] 크기가 N x N인 도시가 있습니다. 도시는 1 x 1 크기의 칸으로 나누어져 있습니다. 도시의 각 칸은 빈칸, 치킨집, 집 중 하나입니다. 도시의 칸은 (r, c)와 같은 형태로 나타내고, r행 c열 또는 위에서부터 r번째 칸, 왼쪽에서부터 c번째 칸을 의미합니다. r과 c는 1부터 시작합니다. 이 도시에 사는 사람들은 치킨을 매우 좋아합니다. 따라서 사람들은 "치킨 거리"라는 말을 주로 사용합니다. 치킨 거리는 집과 가장 가까운 치킨집 사이의 거리입니다. 즉, 치킨 거리는 집을 기준으로 정해지며, 각각의 집은 치킨 거리를 가지고 있습니다. 도시의 치킨 거리는 모든 집의 치킨 거리의 합입니다. 임의의 두 칸 (r1, c1)과 (r2, c2) 사이의 거리는 |r1-r2| + |c1-c2| 로 구..

[구현] 이코테 (파이썬) 기둥과 보 설치 풀이

[문제] 빙하가 깨지면서 스노우타운에 떠내려온 죠르디는 인생 2막을 위해 주택 건축사업에 뛰어들기로 결심하였습니다. 죠르디는 기둥과 보를 이용하여 벽면 구조물을 자동으로 세우는 로봇을 개발할 계획인데, 그에 앞서 로봇의 동작을 시뮬레이션 할 수 있는 프로그램을 만들고 있습니다. 프로그램은 2차원 가상 벽면에 기둥과 보를 이용한 구조물을 설치할 수 있는데, 기둥과 보는 길이가 1인 선분으로 표현되며 다음과 같은 규칙을 가지고 있습니다. 1. 기둥은 바닥 위에 있거나 보의 한쪽 끝부분 위에 있거나, 또는 다른 기둥 위에 있어야 합니다. 2. 보는 한족 끝부분이 기둥 위에 있거나, 또는 양쪽 끝부분이 다른 보와 동시에 연결되어 있어야 합니다. 단, 바닥은 벽면의 맨 아래 지면을 말합니다. 2차원 벽면은 n x..

[구현] 이코테 (파이썬) 뱀 풀이

[문제] 'Dummy'라는 도스 게임이 있습니다. 이 게임에는 뱀이 나와서 기어 다니는데, 사과를 먹으면 뱀 길이가 늘어납니다. 뱀이 이리저리 기어 다니다가 벽 또는 자기 자신의 몸과 부딪히면 게임이 끝납니다. 게임은 N x N 정사각 보드 위에서 진행되고, 몇몇 칸에는 사과가 놓여져 있습니다. 보드의 상하좌우 끝에는 벽이 있습니다. 게임을 시작할 때 뱀은 맨 위 맨 좌측에 위치하고 뱀의 길이는 1입니다. 뱀은 처음에 오른쪽을 향합니다. 뱀은 매 초마다 이동을 하는데 다음과 같은 규칙을 따릅니다. 1. 먼저 뱀은 몸길이를 늘려 머리를 다음 칸에 위치시킵니다. 2. 만약 이동한 칸에 사과가 있다면, 그 칸에 있던 사과가 없어지고 꼬리는 움직이지 않습니다. 3. 만약 이동한 칸에 사과가 없다면, 몸길이를 줄..

백준(Python) 12723번 Minimum Scalar Product (Small) 풀이

Python으로 구현한 12723번 Minimum Scalar Product (Small) 문제 풀이입니다. https://www.acmicpc.net/problem/12723 12723번: Minimum Scalar Product (Small) You are given two vectors v1=(x1,x2,...,xn) and v2=(y1,y2,...,yn). The scalar product of these vectors is a single number, calculated as x1y1+x2y2+...+xnyn. Suppose you are allowed to permute the coordinates of each vector as you wish. Choose two permuta www.a..

백준(Python) 11597번 Excellence 풀이

Python으로 구현한 11597번 Excellence 문제 풀이입니다. https://www.acmicpc.net/problem/11597 11597번: Excellence The World Coding Federation is setting up a huge online programming tournament of teams comprised of pairs of programmers. Judge David is in charge of putting teams together from the Southeastern delegation. Every student must be placed on exactly one team www.acmicpc.net n = int(input()) data = [] ..

백준(Python) 13238번 Bitcoin investment 풀이

Python으로 구현한 13238번 Bitcoin investment 문제 풀이입니다. https://www.acmicpc.net/problem/13238 13238번: Bitcoin investment Bitcoin is a digital asset and a payment system invented by Satoshi Nakamoto. It is not known whether the name "Satoshi Nakamoto" is real or a pseudonym, or whether the name represents one person or a group of people. It was once rumoured by New Yorker M www.acmicpc.net n = int(input..

백준(Python) 12034번 김인천씨의 식료품가게 (Large) 풀이

Python으로 구현한 12034번 김인천씨의 식료품가게 (Large) 문제 풀이입니다. https://www.acmicpc.net/problem/12034 12034번: 김인천씨의 식료품가게 (Large) 입력의 첫 번째 라인(줄)은 테스트 사례의 케이스의 수 T를 나타냅니다. 이후의 라인은 T개의 테스트 케이스가 이어집니다. 각 테스트 케이스는 두 줄로 구성됩니다. 첫 번째 줄에는 INU 식료품가 www.acmicpc.net t = int(input()) for tc in range(1, t + 1) : n = int(input()) data = sorted(map(int, input().split()), reverse=True) result = [] while data : price = data.p..

백준(Python) 23305번 수강변경 풀이

Python으로 구현한 23305번 수강변경 문제 풀이입니다. https://www.acmicpc.net/problem/23305 23305번: 수강변경 $2$번 학생과 $3$번 학생이 수업을 교환한 후, $3$번 학생이 교환한 수업을 $5$번 학생과 교환하게 되면 $2$/$3$/$5$ 번 학생이 원하는 수업을 수강할 수 있다. www.acmicpc.net n = int(input()) data = [0] * 1000001 for i in list(map(int, input().split())) : data[i] += 1 result = 0 for i in list(map(int, input().split())) : if data[i] >= 1 : data[i] -= 1 else : result += 1..