티스토리 뷰
[Python3] 백준 25551번: 멋쟁이 포닉스 문제풀이 -IK_IT

문제
모두가 알다시피, 포닉스는 포스텍의 대표적인 멋쟁이이다! 포닉스는 멋쟁이답게 흰색 또는 검은색의 마스크, 티셔츠, 바지만을 입는다. 포닉스는 매일 다음과 같은 규칙으로 착장을 고른다.
- 마스크와 티셔츠는 다른 색이어야 한다.
- 티셔츠와 바지 역시 다른 색이어야 한다.
- 이틀 연속으로 같은 색의 티셔츠를 입지 않는다.
- 한번 착용한 마스크, 티셔츠, 바지는 다시 사용하지 않는다.
포닉스는 옷을 열심히 모으느라 새로운 옷을 살 돈이 없다. 포닉스가 가진 각 색의 마스크, 티셔츠, 바지의 개수가 주어질 때, 포닉스를 위해 새로운 옷을 사지 않고 연속해서 옷을 고를 수 있는 가장 긴 일수를 구해 보자.
입력
첫째 줄에 포닉스가 가진 흰색 마스크와 검은색 마스크의 개수 MW,MB가 공백으로 구분되어 주어진다. (0≤MW,MB≤109)
둘째 줄에 포닉스가 가진 흰색 티셔츠와 검은색 티셔츠의 개수 TW,TB가 공백으로 구분되어 주어진다. (0≤TW,TB≤109)
셋째 줄에 포닉스가 가진 흰색 바지와 검은색 바지의 개수 PW,PB가 공백으로 구분되어 주어진다. (0≤PW,PB≤109)
출력
포닉스가 연속해서 옷을 고를 수 있는 가장 긴 일수를 출력한다.
예제 입력

풀이
# 1. mask,shirt,pants 변수를 생성하여 입력값을 받는다
# 2. array_1,2를 생성하여 (검정 마스크,흰 옷, 검정 바지),(흰 마스크, 검정 옷, 흰 바지) 값 을 넣는다.
# 3. array_1,2 에서 가장 작은 값들을 answer_array에 넣는다.
# 4. 조건문을 이용하여 가장 작은값들의 차가 2보다 크다면 번갈아 입을 수 없기 떄문에 가장 작은값 x2 +1을 실시한다.
# -값의 차가 2보다 작다면 두 수를 더해준다.
mask = list(map(int,input().split()))
shirt = list(map(int,input().split()))
pants = list(map(int,input().split()))
array_1=[]
array_2=[]
array_1.extend((mask[0],shirt[1],pants[0]))
array_2.extend((mask[1],shirt[0],pants[1]))
array_1.sort()
array_2.sort()
answer_array = []
answer_array.extend((array_1[0],array_2[0]))
answer_array.sort()
if answer_array[1]-answer_array[0] not in [0,1]:
print(answer_array[0]*2+1)
else: print(answer_array[0]+answer_array[1])
이상입니다.
'개발 > 백준, 프로그래머스' 카테고리의 다른 글
| 프로그래머스 문자열 내 마음대로 정렬하기 [Python3] (2) | 2022.12.16 |
|---|---|
| 프로그래머스 안전지대 [Python3] (0) | 2022.12.14 |
| 프로그래머스 비밀지도 2018 KAKAO BLIND RECRUITMENT [Python3] (0) | 2022.12.13 |
| 백준 10250번: ACM호텔 문제풀이 [Python3] (2) | 2022.09.14 |
| 백준 1009번: 분산처리 문제풀이 [Python3] (0) | 2022.08.30 |
댓글