백준 파이썬 풀이 32

[백준/BOJ] 2428 - 표절

2428 - 표절 📌 문제 세계적인 석유 재벌 "규현 조 압둘 티크리티 안드레스 후세인 리오넬 솔레르 살라 마리우 두스 산투스 펠리스 빈 자이드 술탄 친나왓 뱅거 7세"는 1등 상품으로 페라리를 걸고 프로그래밍 대회를 개최했다. 이 대회의 참석자는 총 N명이고 각각 솔루션 파일 1개를 제출했다. 이 솔루션 파일을 F1, F2, …, Fn이라고 한다. 채점 결과를 발표하기 전에, 남의 것을 배낀 사람이 있는지 찾아내려고 한다. 이 대회의 주최측은 두 파일을 비교해서 너무 비슷한지 아닌지 판별하는 프로그램이 있다. 하지만, 제출한 파일의 개수가 너무 많아서, 모든 쌍을 검사한다면, 2012년 지구가 멸망할 때 까지도 검사를 해야할 판이다. 따라서, 파일 크기가 너무 다른 경우에는 그러한 쌍을 검사하지 않고 ..

[백준/BOJ] 2075 - N번째 큰 수

2075 - N번째 큰 수 📌 문제 N×N의 표에 수 N2개 채워져 있다. 채워진 수에는 한 가지 특징이 있는데, 모든 수는 자신의 한 칸 위에 있는 수보다 크다는 것이다. N=5일 때의 예를 보자. 이러한 표가 주어졌을 때, N번째 큰 수를 찾는 프로그램을 작성하시오. 표에 채워진 수는 모두 다르다. 📋 코드 import heapq N = int(input()) q = [] for i in range(N): arr = list(map(int, input().split())) for num in arr: heapq.heappush(q, num) while len(q) > N: heapq.heappop(q) print(heapq.heappop(q)) 💡 한마디 처음 시도할 때에는 최대 힙으로 접근했다. 숫..

[백준/BOJ] 11659 - 구간 합 구하기 4

11659 - 구간 합 구하기 4 📌 문제 수 N개가 주어졌을 때, i번째 수부터 j번째 수까지 합을 구하는 프로그램을 작성하시오. 📋 코드 import sys input = sys.stdin.readline N, M = map(int, input().split()) arr = [0] + list(map(int, input().split())) prefix = [list(map(int, input().split())) for _ in range(M)] for i in range(1, len(arr)): arr[i] += arr[i-1] for i, j in prefix: print(arr[j] - arr[i-1]) 💡 한마디 반복문을 통해 arr 리스트의 누적 합을 구한다. 그러면 i번째부터 j번째까지의..