문제 링크: https://www.acmicpc.net/problem/2810
2810번: 컵홀더
첫째 줄에 좌석의 수 N이 주어진다. (1 ≤ N ≤ 50) 둘째 줄에는 좌석의 정보가 주어진다.
www.acmicpc.net
내 풀이:
참고용 풀이:
Review:
첫 좌석이 어떤 좌석인지에 상관없이 첫 좌석의 왼쪽에는 하나의 컵홀더가 존재한다. 그리고 좌석의 종류에 상관없이 사람의 수만큼 컵홀더를 더하고, 커플석 사이에는 컵홀더가 없으므로 중복으로 세어준 커플석 사이의 컵홀더의 수를 빼면 총 컵홀더를 구할 수 있다. 구한 컵홀더와 사람의 수 중에서 최솟값을 리턴하면 해결할 수 있는 문제이다.
내 코드에서 커플석의 수를 카운팅 할 때 커플석을 묶어서 계산하지 않아 2로 나눠주는 별도의 과정이 들어갔다. 하지만 이 부분은 참고용 풀이에서처럼 커플석을 묶어서 계산해주는 것이 더 깔끔하다고 생각한다. 또 결괏값을 출력할 때 if-else 문을 사용하는 것보다 min() 내장 함수를 이용하는 것이 더 깔끔한 것 같다.
Idea:
컵홀더의 수가 사람의 수(n)보다 적다면 컵홀더의 수를 리턴하고, 반대의 경우에는 사람의 수를 리턴한다.
'알고리즘 문제 풀이: 파이썬 > BOJ' 카테고리의 다른 글
[BOJ_20546] 기적의 매매법 (0) | 2021.10.21 |
---|---|
[BOJ_20918] 전구 (0) | 2021.10.20 |
[BOJ_2875] 대회 or 인턴 (0) | 2021.10.17 |
[BOJ_2822] 점수 계산 (0) | 2021.10.12 |
[BOJ_15829] Hashing (0) | 2021.09.24 |
댓글