본문 바로가기

알고리즘/구현

파이썬 | 백준 | 3985 | 롤 케이크 | array.index

solution

1. 여러 명인 경우에는 번호가 작은 사람 출력 → array.index()

 

# 3985, 롤 케이크
import sys

L = int(sys.stdin.readline())
cake = [0] * (L + 1)
N = int(sys.stdin.readline())
audience = [0] * (N + 1)
M_idx, M_cnt = 0, 0

for i in range(1, N + 1):
    P, K = map(int, sys.stdin.readline().split())
    if K - P - 1 > M_cnt:
        M_idx = i
        M_cnt = K-P-1
    cnt = 0
    for j in range(P, K + 1):
        if not cake[j]:
            cake[j] = 1
            cnt += 1
    audience[i] = cnt

print(M_idx)
print(audience.index(max(audience)))

 

문제 출처 www.acmicpc.net/problem/3985

 

3985번: 롤 케이크

첫째 줄에 롤 케이크의 길이 L (1 ≤ L ≤ 1000)이 주어진다. 둘째 줄에는 방청객의 수 N (1 ≤ N ≤ 1000)이 주어진다. 다음 N개 줄에는 각 방청객 i가 종이에 적어낸 수 Pi와 Ki가 주어진다. (1 ≤ Pi ≤ Ki

www.acmicpc.net