알고리즘/백준

[파이썬] BOJ_13300(방 배정)

딱따구르리 2021. 3. 4. 15:20
728x90
반응형

문제

 

www.acmicpc.net/problem/13300

 

13300번: 방 배정

표준 입력으로 다음 정보가 주어진다. 첫 번째 줄에는 수학여행에 참가하는 학생 수를 나타내는 정수 N(1 ≤ N ≤ 1,000)과 한 방에 배정할 수 있는 최대 인원 수 K(1 < K ≤ 1,000)가 공백으로 분리되어

www.acmicpc.net


 

해설

 

같은 성별끼리, 같은 학년끼리만 방을 쓸 수 있다는 규칙만 체크하면 그렇게 어렵지 않은 문제이다.

 

학년별 인원수가 따로 주어지는 게 아니라 인원수 만큼 입력을 통해 주어지기 때문에

입력을 받을 때 마다 리스트에 따로 학년별 인원수를 체크해주는 게 좋다.

 

리스트에 인원수 체크가 끝나면 한 방에 배정 가능한 최대 인원수로 맞게 떨어지는 지를 체크해야 한다.

학년 별로 배정 인원까지 체크가 끝나면

그 결과는 리스트에 담겨있을테니 합계를 내주면 최종 결과를 얻을 수 있다.

 


코드

 

-파이썬

#백준 13300(방 배정)

n, k = map(int, input().split())  #학생 수, 한 방 최대 인원 수
female = [0] * 1000
male = [0] * 1000

for j in range(n):
    s, y = map(int, input().split())  #성별, 학년
    #학년별 인원수 체크
    if s == 0:  #여자
        female[y] += 1
    else:  #남자
        male[y] += 1
    
for j in range(1, 7):
    if female[j] % k == 0:  #인원수 딱 맞게 떨어질 때
        female[j] = female[j] // k
    else:
        female[j] = (female[j] // k) + 1

    if male[j] % k == 0:
        male[j] = male[j] // k
    else:
        male[j] = (male[j] // k) + 1

print(sum(female) + sum(male))
728x90
반응형