티스토리 뷰

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

문제

모두가 알다시피, 포닉스는 포스텍의 대표적인 멋쟁이이다! 포닉스는 멋쟁이답게 흰색 또는 검은색의 마스크, 티셔츠, 바지만을 입는다. 포닉스는 매일 다음과 같은 규칙으로 착장을 고른다.

  1. 마스크와 티셔츠는 다른 색이어야 한다.
  2. 티셔츠와 바지 역시 다른 색이어야 한다.
  3. 이틀 연속으로 같은 색의 티셔츠를 입지 않는다.
  4. 한번 착용한 마스크, 티셔츠, 바지는 다시 사용하지 않는다.

포닉스는 옷을 열심히 모으느라 새로운 옷을 살 돈이 없다. 포닉스가 가진 각 색의 마스크, 티셔츠, 바지의 개수가 주어질 때, 포닉스를 위해 새로운 옷을 사지 않고 연속해서 옷을 고를 수 있는 가장 긴 일수를 구해 보자.

 

입력

첫째 줄에 포닉스가 가진 흰색 마스크와 검은색 마스크의 개수 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])

이상입니다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/10   »
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 29 30 31
글 보관함