문제요약
나의 코드 및 설명
- room_boy : 학년별 남학생 방의 인원 수를 저장할 딕셔너리
- room_gilr : 학년별 여학생 방의 인원 수를 저장할 딕셔너리
- 문제에서 s가 1일 때는 남학생, 0일 때는 여학생이라고 했고 학년 정보인 y를 key로 하는 value에 1씩 추가한다.
- 각 학년별 인원 수를 최대 수용 인원(k)로 나누었을 때 나누어 떨어지면 나눈 값을 cnt에 추가,
나누어 떨어지지 않는다면 나눈 값에 1을 더해주어(방은 넉넉히 있어야 되기 때문, 예를 들어 3학년이 3명일 때 최대 수용 인원이 2명이라면, 3//2 + 1 개의 방이 있어야 모두 들어갈 수 있다.) cnt에 추가한다.
n, k = map(int, input().split())
room_boy = {1:0, 2:0, 3:0, 4:0, 5:0, 6:0}
room_girl = {1:0, 2:0, 3:0, 4:0, 5:0, 6:0}
for _ in range(n):
s, y = map(int, input().split())
if s == 1:
room_boy[y] += 1
else:
room_girl[y] += 1
cnt = 0
for i in range(1,7):
if room_boy[i] % k == 0:
cnt += room_boy[i]//k
else:
cnt += (room_boy[i]//k) +1
if room_girl[i] % k == 0:
cnt += room_girl[i]//k
else:
cnt += (room_girl[i]//k) +1
print(cnt)
피드백
열흘 전에는 2점을 받았던 문제이다.
다시 풀어보며 풀이 방법에 대해 고민해보았는데, 학년은 1~6학년으로 고정되있고 학년별, 성별별로 나누어서 인원 수를 저장해야 하는 것을 보고 딕셔너리를 사용하면 풀 수 있겠다고 생각했고, 100점을 맞았다.
딕셔너리를 응용하지 못해서 속상했었는데 이번 기회로 자신감을 높일 수 있었고, 내가 더 성장했다는 것을 느낄 수 있어서 뿌듯했다.
'Baekjoon > IM Level' 카테고리의 다른 글
[백준] 2304 창고 다각형 (실버2) (0) | 2023.03.20 |
---|---|
[백준] 1063 킹 (실버3) (2) | 2023.03.20 |
[백준] 2999 비밀 이메일 (브론즈1) (0) | 2023.03.17 |
[백준] 10709 기상캐스터 (실버5) (0) | 2023.03.16 |
[백준] 3085 사탕 게임 (실버2) (0) | 2023.03.15 |