일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |
Tags
- SW ExpertAcademy
- 파이썬
- 17144번
- 백준 알고리즘
- 키패드 누르기
- 어른 상어
- 베스트엘범
- 스타트 택시
- 미세먼지 안녕!
- 경주로 건설
- 프로그래머스
- 9095번
- 거울 설치
- 2020 카카오 인턴십
- SW Expert Academy
- python
- QueryDSL 기초
- 수식 최대화
- 빛의 경로 사이클
- 감소하는 수
- 15686번
- 1789번
- 12865번
- 보석 쇼핑
- 12869번
- 19238번
- HTML 기초
- 1038번
- 16234번
- 14499번
Archives
- Today
- Total
보물창고 블로그
백준 알고리즘 13458번 시험감독 풀이 with Python 본문
728x90
문제 링크: https://www.acmicpc.net/problem/13458
13458번: 시험 감독
첫째 줄에 시험장의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 각 시험장에 있는 응시자의 수 Ai (1 ≤ Ai ≤ 1,000,000)가 주어진다. 셋째 줄에는 B와 C가 주어진다. (1 ≤ B, C ≤ 1,000,000)
www.acmicpc.net
문제는 쉬웠으나 조건문에서 변수 하나를 잘못 적용하여 고생한 문제였다. 해결한 방식은 먼저 n에 시험장의 개수를 입력받고, test에 각 시험장 인원을 입력받고, b, c에 각각 총감독관과 부감독관이 감독할 수 있는 인원수를 입력받았다. 그리고 시험장마다 먼저 총감독관이 감독할 수 있는 인원수를 빼고 정답에 1을 더해주었다. 이후의 시험장 인원이 0보다 적거나 같으면 다음 시험장으로 넘어가고, 아니면 부감독관이 감독할 수 있는 인원수인 c로 나눠서 나머지가 0이면 나눈 몫을 더하고 나머지가 0이 아니면 몫에다 1을 더한 값을 정답에 더해주었다. 다음은 이를 구현한 코드이다.
n = int(input())
test = list(map(int, input().split()))
b, c = map(int, input().split())
answer = 0
for i in test:
answer += 1
i -= b
if i <= 0:
continue
else:
if i % c == 0:
answer += i // c
continue
else:
answer += (i // c) + 1
continue
print(answer)
'알고리즘 풀이 > 백준 알고리즘' 카테고리의 다른 글
백준 알고리즘 15685번 드래곤 커브 풀이 with Python (0) | 2020.02.21 |
---|---|
백준 알고리즘 12100번 2048 풀이 with Python (0) | 2020.02.01 |
백준 알고리즘 13460번 구슬탈출 풀이 with Python (0) | 2020.01.16 |
백준 알고리즘 14502번 연구소 풀이 with Python (0) | 2020.01.09 |
백준 알고리즘 17779번 게리맨더링 2 풀이 with Python (0) | 2020.01.08 |
Comments