본문 바로가기

학부/코딩테스트 준비

백준 (단계별 풀어보기 2단계) 2480 문제, 파이썬

728x90
반응형

 


나의 답변


a,b,c = map(int,input().split())
dice = [a,b,c]
length = len(set(dice))

if length ==1 :
  print(a*1000 + 10000)

# index 함수로 해당 숫자가 해당 인덱스 말고도 다른 인덱스에 존재한다면, list에 int형 자료로 추가
elif length ==2 :
  x = [int(x) for i,x in enumerate(dice) if i !=dice.index(x)]
  print(int(x[0])*100 + 1000)
else:
  print(max(dice)*100)

list 내에서 반복문을 사용하는 코드는 굉장히 유용해서 한번 알아두면 자주 쓸 수 있다.

또한, enumerate 함수를 이용하여 index와 해당 index 값에 한번에 접근할 수 있다.

 


다른 사람 답변


 

a, b, c = map(int, input().split())

if a == b == c:
    print(10000+a*1000)
elif a == b:
    print(1000+a*100)
elif a == c:
    print(1000+a*100)
elif b == c:
    print(1000+b*100)
else:
    print(100 * max(a,b,c))

# 다른 답변 2
a,b,c=map(int,input().split())
if a==b==c:
    print(10000+a*1000)
elif a==b or b==c:
    print(1000+b*100)
elif a==c:
    print(1000+a*100)
else:
    print(max(a,b,c)*100)

코드 길이는 내 답변이 더 짧았지만, 이 코드는 내가 보기엔 가독성이 좋아서 코드 이해하는 데에 더 좋을 것 같았다.

Simple is best.

간단하게 접근하는 것도 좋은 방법인 것 같다.

728x90
반응형