본문 바로가기
> 알고리즘 문제 풀이/BOJ

[Python] 13300-방 배정

by bky373 2020. 10. 26.

> 출처: www.acmicpc.net/problem/13300

* 핵심 로직:
   -
학년별, 성별 반이 달라야한다 -> 리스트로 구분
         -
같은 학년, 같은 성별의 학생수가 K보다 클 경우
         -
방을 1개 늘리고 (학생수 - K) 를 반복한다

** 아쉬운 점:
  - 이 문제는 사실 while문을 굳이 돌리지 않고도,
    - if (학생 수 % K == 0) 이면, cnt += 학생 수 // K
    - else 이면, cnt += 학생 수 // K + 1 로 간단하게 해결할 수 있었다

N, K = map(int, input().split())
student = [[0, 0] for _ in range(6)]
for _ in range(N):
    S, Y = map(int, input().split())
    student[Y-1][S] += 1
print(student)
cnt = 0
for s in student:
    if s[0] != 0:
        cnt += 1
    while s[0] > K:
        cnt += 1
        s[0] -= K
    
    if s[1] != 0:
        cnt += 1
    while s[1] > K:
        cnt += 1
        s[1] -= K
print(cnt)

댓글