알고리즘 문제풀이
백준 13300 방 배정 Python 서브태스크
아크몽
2024. 2. 18. 19:57
소요시간 22분
리스트로 해보려 하다가 중복값을 처리할 방법이 생각나지 않아
딕셔너리를 이용하는것이 좋을 것 같아서 사용해봄
N,K = map(int,input().split())
# w_arr = []
w_arr = {1:0,2:0,3:0,4:0,5:0,6:0}
# m_arr = []
m_arr = {1:0,2:0,3:0,4:0,5:0,6:0}
for i in range(N):
S, Y = map(int, input().split()) # 성별(0,1), 학년(1~6)
if S == 0: #여학생
# m_arr.append(Y)
w_arr[Y] += 1
else:
# m_arr.append(Y)
m_arr[Y] += 1
room_max = 0
s_max = 0
for i in w_arr.keys():
if w_arr[i] >= K:
room_max += (w_arr[i]-1)//K + 1
elif w_arr[i] ==0:
pass
else:
room_max += 1
for i in m_arr.keys():
if m_arr[i] >= K:
room_max += (m_arr[i]-1)//K + 1
elif m_arr[i] ==0:
pass
else:
room_max += 1
print(room_max)