본문 바로가기

Baekjoon175

[백준 1238번] 파티 https://www.acmicpc.net/problem/1238import sysimport heapqinput = sys.stdin.readline# N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다.# 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비# N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다n, m, x = map(int,input().split())INF = float("inf")graph = [[] for _ in range(n+1)]total_length = [0]*(n+1)for _ in range(m): start, end, t = map(int,input().split.. 2024. 7. 16.
[백준 16987번] 계란으로 계란치기 https://www.acmicpc.net/problem/16987import sysinput = sys.stdin.readline# 각 계란에는 내구도와 무게가 정해져있다# 계란으로 계란을 치게 되면 각 계란의 내구도는 '상대 계란의 무게'만큼 깎이게 된다# 그리고 내구도가 0 이하가 되는 순간 계란은 깨지게 된다# 일렬로 놓여있는 계란에 대해 왼쪽부터 차례로 들어서 한 번씩만 다른 계란을 쳐 최대한 많은 계란을 깨는 문제# 1. 가장 왼쪽의 계란을 든다.# 2. 손에 들고 있는 계란으로 깨지지 않은 다른 계란 중에서 하나를 친다.# (단, 손에 든 계란이 깨졌거나 깨지지 않은 다른 계란이 없으면 치지 않고 넘어간다.)# 3. 가장 최근에 든 계란의 한 칸 오른쪽 계란을 손에 들고 2번 과정을 다시 진.. 2024. 7. 12.
[백준 20056번] 마법사 상어와 파이어볼 https://www.acmicpc.net/problem/20056import sysinput = sys.stdin.readline# 마법사 상어가 크기가 N×N인 격자에 파이어볼 M개를 발사# i번 파이어볼의 위치는 (ri, ci), 질량은 mi이고, 방향은 di, 속력은 si# 1번 행은 N번과 연결되어 있고, 1번 열은 N번 열과 연결# 파이어볼의 방향은 어떤 칸과 인접한 8개의 칸의 방향을 의미# 1. 모든 파이어볼이 자신의 방향 di로 속력 si칸 만큼 이동(이동하는 중에는 같은 칸에 여러 개의 파이어볼이 있을 수도 있다.)# 2. 이동이 모두 끝난 뒤, 2개 이상의 파이어볼이 있는 칸에서는 다음과 같은 일이 일어난다. # 2-1. 같은 칸에 있는 파이어볼은 모두 하나로 합쳐진다. #.. 2024. 7. 11.
[백준 1043번] 거짓말 https://www.acmicpc.net/problem/1043import sys from itertools import permutations from collections import deque input = sys.stdin.readline # 지민이는 그 이야기를 말할 때, 있는 그대로 진실로 말하거나 엄청나게 과장해서 말한다 # 당연히 과장해서 이야기하는 것이 훨씬 더 재미있기 때문에, 되도록이면 과장해서 이야기하려고 한다 # 하지만, 지민이는 거짓말쟁이로 알려지기는 싫어한다 # 문제는 몇몇 사람들은 그 이야기의 진실을 안다는 것 # 따라서 이런 사람들이 파티에 왔을 때는, 지민이는 진실을 이야기할 수 밖에 없다 # 당연히, 어떤 사람이 어떤 파티에서는 진실을 듣고, 또다른 파티에서는 과장된 .. 2024. 7. 10.
[백준 11004번] K번째 수 https://www.acmicpc.net/problem/11004import sysinput = sys.stdin.readlinen,k = map(int,input().split())numbers = sorted(list(map(int,input().split())))print(numbers[k-1]) 이번 문제는 주어진 n개의 숫자들을 오름차순으로 정렬했을 때 k번째로 오는 숫자를 출력하는 문제이다. 문제 조건이 5*(10**6)인 것을 보고 단순히 파이썬에서 정의된 sorted() 함수를 사용해도 시간초과가 발생하지 않겠다고 판단하여 간단하게 함수를 사용해서 풀이하였다. 2024. 7. 9.
[백준 2660번] 회장뽑기 https://www.acmicpc.net/problem/2660import sysfrom collections import dequeinput = sys.stdin.readline# 회원 사이에 서로 모르는 사람도 있지만, 몇 사람을 통하면 모두가 서로 알 수 있다# 각 회원은 다른 회원들과 가까운 정도에 따라 점수를 받게 된다.# 어느 회원이 다른 모든 회원과 친구이면, 이 회원의 점수는 1점# 어느 회원의 점수가 2점이면, 다른 모든 회원이 친구이거나 친구의 친구# 어느 회원의 점수가 3점이면, 다른 모든 회원이 친구이거나, 친구의 친구이거나, 친구의 친구의 친구# 각 회원의 점수를 정할 때 주의할 점은 어떤 두 회원이 친구사이이면서 동시에 친구의 친구사이이면, 이 두사람은 친구사이# 회장의 점수와.. 2024. 7. 9.