본문 바로가기

Algorithm Problems

(212)
[백준/python] 1417번: 국회의원 선거 문제 https://www.acmicpc.net/problem/1417 1417번: 국회의원 선거 첫째 줄에 후보의 수 N이 주어진다. 둘째 줄부터 차례대로 기호 1번을 찍으려고 하는 사람의 수, 기호 2번을 찍으려고 하는 수, 이렇게 총 N개의 줄에 걸쳐 입력이 들어온다. N은 50보다 작거나 같 www.acmicpc.net 문제 요약 국회의원 선거에 N명의 국회의원 후보가 출마한다. 다솜이는 기호 1번이다. 기호 1번을 찍지 않은 사람들을 돈으로 매수해서 국회의원에 당선이 되게 하려고 할 때 다솜이가 매수해야하는 사람의 최솟값을 출력한다. 코드 from heapq import * n = int(input()) # 국회의원 후보 수 val = int(input()) # 다솜이가 받은 득표 수 ans =..
[백준/python] 1927번, 11279번, 11286번: 최소, 최대, 절댓값 힙 문제 https://www.acmicpc.net/problem/1927 https://www.acmicpc.net/problem/11279 https://www.acmicpc.net/problem/11286 문제 요약 세 가지 힙은 다음과 같은 연산을 지원하는 자료구조이다. 1. 최소 힙 - 배열에 자연수 x를 넣는다. - 배열에서 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. 2. 최대 힙 - 배열에 자연수 x를 넣는다. - 배열에서 가장 큰 값을 출력하고, 그 값을 배열에서 제거한다. 3. 절댓값 힙 - 배열에 정수 x를 넣는다. - 배열에서 절댓값이 가장 작은 값을 출력하고, 그 값을 배열에서 제거한다. - 절댓값이 가장 작은 값이 여러개일 때는, 가장 작은 수를 출력하고, 그 값을 배열에..
[백준/python] 2167번: 2차원 배열의 합 문제 https://www.acmicpc.net/problem/2167 2167번: 2차원 배열의 합 첫째 줄에 배열의 크기 N, M(1 ≤ N, M ≤ 300)이 주어진다. 다음 N개의 줄에는 M개의 정수로 배열이 주어진다. 배열에 포함되어 있는 수는 절댓값이 10,000보다 작거나 같은 정수이다. 그 다음 줄에는 www.acmicpc.net 문제 요약 N × N 크기의 2차원 배열을 입력 받고, 위치 (i, j) 부터 (x, y) 까지 있는 수들의 합을 출력한다. + (i, j), (x, y)는 배열의 i(x)번째 행, j(y)번째 열을 의미한다. (1부터 시작) 코드 import sys input = sys.stdin.readline N, M = map(int, input().rstrip().spl..
[백준/python] 17951번: 흩날리는 시험지 속에서 내 평점이 느껴진거야 문제 https://www.acmicpc.net/problem/17951 17951번: 흩날리는 시험지 속에서 내 평점이 느껴진거야 시험지를 12, 7, 19, 20과 17, 14, 9, 10 으로 나누면 맞은 문제 개수의 합의 최소는 50이다. www.acmicpc.net 문제 요약 N개의 시험지를 K개의 그룹으로 나눈다. 각 그룹에서 맞은 문제 개수의 합을 구하여 그 중 최솟값이 시험 점수가 된다. 시험 점수가 최대가 되도록 하는 그룹을 찾고 최대 점수를 출력한다. + 시험지는 반드시 현재 순서 그대로 그룹으로 나누어야한다. (정렬 X) 코드 N, K = map(int, input().split()) # N은 시험지 개수, K는 시험지를 나눌 그룹 수 arr = list(map(int, input()..
[백준/python] 2343번: 기타 레슨 문제 https://www.acmicpc.net/problem/2343 2343번: 기타 레슨 강토는 자신의 기타 강의 동영상을 블루레이로 만들어 판매하려고 한다. 블루레이에는 총 N개의 강의가 들어가는데, 블루레이를 녹화할 때, 강의의 순서가 바뀌면 안 된다. 순서가 뒤바뀌는 경 www.acmicpc.net 문제 요약 N개의 강의 영상들을 같은 크기 M개의 블루레이에 저장할 때, 가능한 블루레이의 크기 중 최소 크기를 출력한다. + 강의를 블루에이에 저장할 때 강의의 순서가 바뀌면 안된다 (정렬 X) 코드 N, M = map(int, input().split()) arr = list(map(int, input().split())) start = 0 end = sum(arr) # 이진 탐색 범위 res ..
[백준/python] 16401번: 과자 나눠주기 문제 https://www.acmicpc.net/problem/16401 16401번: 과자 나눠주기 첫째 줄에 조카의 수 M (1 ≤ M ≤ 1,000,000), 과자의 수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 과자 N개의 길이 L1, L2, ..., LN이 공백으로 구분되어 주어진다. 과자의 길이는 (1 ≤ L1, L2, ..., LN ≤ 1, www.acmicpc.net 문제 요약 길이가 L인 막대 과자 N개가 있을 때, M명의 모든 조카들에게 같은 길이의 막대 과자를 나누어 줄 수 있다. 이 때 나누어 줄 수 있는 가장 긴 막대 과자의 길이를 출력한다. + 막대 과자는 길이와 상관없이 여러 조각으로 나누어 질 수 있지만, 과자를 하나로 합칠 수는 없다. 코드 M, N = ..