반응형
리뷰
이 문제를 푸는데에는 많은 방법이 있겠지만 딕셔너리로 풀어보고 싶어서 딕셔너리로 풀었다.
문제 풀이
우선 남학생과 여학생용 딕셔너리를 생성해 주고 key값을 학년으로 설정한다. 물론 value는 0으로 초기화
성별과 학년 값을 받아주고 성별이 1일경우 딕셔너리1의 학년 값을 1 올려준다. 반대일 경우 딕셔너리2 활용
각 딕셔너리의 값 리스트를 받아 방의 최대인원으로 나눠준 후 math 모듈의 ceil 함수를 사용해 값을 더해준 뒤 출력
참고 사항
딕셔너리를 사용하면 시간복잡도에서 유리하다.
정답 코드
def q13300():
# 백준 13300번 방 배정 파이썬
import math
n, k = map(int, input().split())
dic1 = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
dic2 = {1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0}
for _ in range(n):
s, y = map(int, input().split())
if s:
dic1[y] += 1
else:
dic2[y] += 1
result = 0
for val in dic1.values():
result += math.ceil(val / k)
for val in dic2.values():
result += math.ceil(val / k)
print(result)
q13300()
728x90
반응형
'알고리즘 공부 > 파이썬(Python)' 카테고리의 다른 글
SWEA 2058번 D1 자릿수 더하기 파이썬 (0) | 2024.06.26 |
---|---|
SWEA 1936번 D1 1대1 가위바위보 파이썬 (0) | 2024.06.26 |
백준 2980번 도로와 신호등 파이썬 (0) | 2024.06.25 |
백준 10709번 기상캐스터 파이썬 (0) | 2024.06.25 |
백준 2578번 빙고 파이썬 (0) | 2024.06.25 |