> 출처: 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)
'> 알고리즘 문제 풀이 > BOJ' 카테고리의 다른 글
[Python] 1026-보물 (0) | 2020.10.27 |
---|---|
*[Python] 1904-01타일 (0) | 2020.10.26 |
[Python] 2609-최대공약수와 최소공배수 (0) | 2020.10.25 |
*1927-최소 힙 (python, 파이썬) (0) | 2020.10.21 |
***16768-Mooyo Mooyo (python, 파이썬) (0) | 2020.10.19 |
댓글