알고리즘 문제 풀이: 파이썬/BOJ

[BOJ_2810] 컵홀더

hueco 2021. 10. 18.

문제 링크: 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

댓글