a,b,c=map(int,input().split())
list=[]
list.append(a)
list.append(b)
list.append(c)
list.sort()
if a==b and b==c:
    print(10000+a*1000)
elif a==b and b!=c:
    print(1000+a*100)
elif a==c and a!=b:
    print(1000+a*100)
elif b==c and b!=a:
    print(1000+b*100)
else:
    print(int(list[2])*100)

 

처음에는 이렇게 풀었다.

푼 코드를 다시 보며 생각해보니 문제에서의 키워드는 "중복"인 것 같았다. 중복과 관련된 함수는 set함수이므로 set함수를 이용해 다시 작성해 보았다.

list = list(map(int, input().split()))

if len(set(list))==1: 
    print(list[0]*1000+10000)
elif len(set(list))==2: 
    print(sorted(list)[1]*100+1000) #정렬 후 두번 째 값은 항상 중복된 값
else: 
    print(max(list)*100)

 

다시보면 처음 코드는 너무 의식의 흐름대로 작성해 길어진 것 같다.

생각해보니 list에 int 형태로 원소를 넣어줬기 때문에 처음 풀이 마지막 줄에서 굳이 int로 변환해주지 않아도 되겠다.

 

 

 

문제 : https://www.acmicpc.net/problem/2480

 

2480번: 주사위 세개

1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다.  같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.  같은 눈이 2개

www.acmicpc.net

 

'Baekjoon > python' 카테고리의 다른 글

[백준 10950번] A+B - 3  (0) 2022.04.20
[백준 2739번] 구구단  (0) 2022.04.19
[백준 2525번] 오븐 시계  (0) 2022.04.15
[백준 2884번] 알람 시계  (0) 2022.04.14
[백준 14681번] 사분면 고르기  (0) 2022.04.13

+ Recent posts