반응형
문제
https://www.acmicpc.net/problem/25551
풀이
옷을 풀셋으로 입는 경우는 두가지 밖에 없습니다.
- 흰 마스크, 검정 티, 흰 바지
- 검정 마스크, 흰 티, 검정 바지
흰 마스크, 검정 티, 흰 바지 중 최소 개수를 찾으면 1번을 입는 경우이고,
검정 마스크, 흰 티, 검정 바지 중 최소 개수를 찾으면 2번을 입는 경우입니다.
두 경우를 합친다고 구할 수 없습니다.
이틀 연속으로 같은 색의 티셔츠를 입지 않는다는 규칙이 있기 때문입니다.
만약 1번을 입을 수 있는 경우가 1번, 2번을 입을 수 있는 경우가 3번 이라면?
번갈아서 입기 때문에 2번을 최대 2번 밖에 입을 수 없습니다. (2번, 1번, 2번)
(1번을 입을 수 있는 경우, 2번을 입을 수 있는 경우 + 1) 중 작은 값과
(2번을 입을 수 있는 경우, 1번을 입을 수 있는 경우 + 1) 중 작은 값을 더해서 구할 수 있습니다.
예를 들어 1번을 입을 수 있는 경우가 5이고, 2번을 입을 수 있는 경우가 10이라면?
min(5, 11) + min(10, 6) = 11이 됩니다.
단순히 대소비교를 하지 않고 편하게 구하기 위해 min 함수를 사용했습니다.
소스코드
후기
이틀 연속으로 같은 색의 티셔츠를 입지 않는다는 것에 주의하면 쉽게 풀이할 수 있습니다.
반응형
'PS > 백준' 카테고리의 다른 글
[BOJ] 백준 17298 오큰수 (Swift) (0) | 2023.04.26 |
---|---|
[BOJ] 백준 9935 문자열 폭발 (Swift) (0) | 2023.04.26 |
[BOJ] 백준 11286 절댓값 힙 (Swift) (1) | 2023.04.20 |
[BOJ] 백준 1927 최소 힙 (Swift) (0) | 2023.04.20 |
[BOJ] 백준 11279 최대 힙 (Swift) (0) | 2023.04.20 |