본문 바로가기

Python262

[백준 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.
[백준 1655번] 가운데를 말해요 https://www.acmicpc.net/problem/1655import sys import heapq input = sys.stdin.readline # 정수를 하나씩 외칠때마다 지금까지 말한 수 중에서 중간값을 출력 # 짝수개라면 중간에 있는 두 수 중에서 작은 수 n = int(input()) heap1 = [] # 중간값을 포함한 이전 값 최대힙 heap2 = [] # 중간값 이후의 값 최소힙 for i in range(n): num = int(input()) if len(heap1) == len(heap2): heapq.heappush(heap1,-num) else: heapq.heappush(heap2,num) if heap2 and heap2[0] < -heap1[0]: lvalue = .. 2024. 7. 8.
[프로그래머스 Lv.3] N으로 표현 def solution(N, number): answer = -1 if N == number: return 1 # N을 i+1번 사용했을 때 만들 수 있는 값들 dp = [set() for i in range(9)] for i in range(1,9): dp[i].add(int(str(N)*i)) for i in range(2,9): for j in range(1,i): for term1 in dp[j]: for term2 in dp[i-j]: dp[i].add(term1 + term2) dp[.. 2024. 7. 4.
[백준 13335번] 트럭 https://www.acmicpc.net/problem/13335import sysinput = sys.stdin.readlinefrom collections import deque# 강을 가로지르는 하나의 차선으로 된 다리# 이 다리를 n 개의 트럭이 건너가려고 한다# 트럭의 순서는 바꿀 수 없으며, 트럭의 무게는 서로 같지 않을 수 있다.# 다리 위에는 단지 w 대의 트럭만 동시에 올라갈 수 있다. # 각 트럭들은 하나의 단위시간(unit time)에 하나의 단위길이만큼만 이동할 수 있다고 가정# 동시에 다리 위에 올라가 있는 트럭들의 무게의 합은 다리의 최대하중인 L보다 작거나 같아야 한다.# 참고로, 다리 위에 완전히 올라가지 못한 트럭의 무게는 다리 위의 트럭들의 무게의 합을 계산할 때 포함하.. 2024. 7. 3.