[BOJ][Python]방 배정 #13300

MEIN_FIGUR·2021년 7월 27일
0

백준_문제풀이

목록 보기
8/21

https://www.acmicpc.net/problem/13300

📌풀이


내가 쓴 풀이(성공)

  • 편리성을 위해 default값이 설정되어있는 defaultdict 활용
    • 남학생, 여학생 용 딕셔너리를 분리해서 생성
  • 전체 방의 개수를 구하기 위한 room 설정(초기값 0)
  • 각 학년에서 생성되는 방의 개수를 room에 더하고, 출력
from collections import defaultdict

students, room_max = map(int,input().split())
#남학생, 여학생용 딕셔너리
male = defaultdict(int)
female = defaultdict(int)

for student in range(students):
    gender, grade = map(int,input().split())
    if gender :
        male[grade] += 1
    else :
        female[grade] += 1
        
room = 0
for grade in range(1, 7):
    #각 학년의 남학생, 여학생 수
    w, m = female[grade], male[grade]
    
    #몫만큼 더해주고, 나머지가 있는 경우 방 하나 더 생성
    room += w//room_max + m//room_max
    if w%room_max :
        room += 1
    if m%room_max :
        room += 1
    
print(room)

📌후기


다른 사람의 풀이를 봤는데, math모듈의 ceil함수를 활용하는 경우가 있었다.

math.ceil(x): x를 소수점 첫째자리에서 올려 정수형으로 리턴

이 함수를 활용한다면 내 코드에서처럼 나머지를 고려하지 않아도 된다는 것을 알 수 있었다.

profile
Growing Developer

0개의 댓글