dice1, dice2, dice3 = map(int,input().split())

if dice1==dice2==dice3:
    print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
    prize = 1000 + same_number * 100
    print(prize)

else:
    print(max(dice1, dice2, dice3)*100)
같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다.
같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다.
모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다.

 

🤔 문제 풀이

  • dice1, dice2, dice3 = map(int,input().split())
    • 주사위 세 개를 받아낼 겁니다
  • if dice1==dice2==dice3:
        print(10000 +dice1 *1000)
    • 주사위 세 개가 모두 같은 숫자를 띄울 때를 시작으로 조건문을 시작했습니다
  • elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
        same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
        prize = 1000 + same_number * 100
        print(prize)
    • 주사위 두 개가 같을 때의 조건문입니다
    • dice1&dice2 , dice1&dice3 , dice2&dice3이 주사위 두 개가 같을 때죠
    • same_number = dice1 if dice1 == dice2 or dice1 == dice3
      • dice1이 다른 dice2,3과 같을 때 dice1을 주어로 내세우겠다는 거예요
    • else dice2
      • 그 외에는 dice2를 주어로 하겠다는 거죠
  • else:
        print(max(dice1, dice2, dice3)*100)
    • 나머지는 주사위 세 개 모두 다를 때 max() 함수를 써서 최댓값으로 곱해주었습니다.

#1트 
dice1, dice2, dice3 = map(int,input().split())
dice = [dice1, dice2, dice3]

prize_same3 = 10000 +dice *1000     # 뭐가 같은 숫자인지 어케 판별하냐 이거
prize_same2 = 1000 +dice *100
nothing_same_prize = max(dice)*100

if dice1==dice2==dice3:     # 주사위 모두 같은 숫자일 때
    print(prize_same3)
elif :
     print(prize_same2)

 

첫 번째로 시도한 코드들인데, 저 많이 성장한 게 보이지 않나요?

문제 보자마자 우르르 쓴 게 신기했어요

원래 하얀 백지에 선뜻 손 올리기가 어렵잖아요, 하지만 저는 얼마든지 더럽히는 거엔 서슴없거든요

근데 뭘 알아야 더럽히죠 ㅋㅋㅋ,,

이제는 어느 정도 마음껏 더럽힐 수 있어요! 

 

하지만 elif로 들어가는 순간 막혔어요 ㅋㅎ

 

#2트 (TypeError)
dice1, dice2, dice3 = map(int,input().split())
dice = [dice1, dice2, dice3]

prize_same3 = 10000 +dice *1000
prize_same2 = 1000 +dice *100
nothing_same_prize = max(dice)*100

if dice1==dice2==dice3:
    print(prize_same3)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    print(prize_same2)
else:
    print(nothing_same_prize)

 

2트에서는 TypeError로 틀렸어요

그래서 리스트로 하지 말고, 해봐야겠다 싶더라구요

elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    print(prize_same2)

그리고!

elif문을 노가다로 써보았어요 어떻게든 문제는 풀고 싶었거든요!

 

#3트 "틀렸습니다"
dice1, dice2, dice3 = map(int,input().split())

if dice1==dice2==dice3:
    print(10000 +dice1 *1000)
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:    # 여기서 같은 숫자 어케 판별함?
    print(1000 +dice1 *100)
else:
    print(max(dice1, dice2, dice3)*100)

 

자! 리스트는 없애주고 하나하나 적어주었어요

근데 그냥 "틀렸습니다"라고 하네요? ^^

 

그래서 코드랑 눈싸움했어요

elif문이 문제인 게 뻔히 보이더라구요

elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:    # 여기서 같은 숫자 어케 판별함?
    print(1000 +dice1 *100)

 

저 중에서 어떤 게 같은 숫자 2개이고, 뭐를 print()해줘야 할지를 명확히 해줘야 하잖아요

 

#4트
dice1, dice2, dice3 = map(int,input().split())

if dice1==dice2==dice3:
    print(10000 +dice1 *1000)
    
elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    same_number = dice1 if dice1 == dice2 or dice1 == dice3 else dice2
    prize = 1000 + same_number * 100
    print(prize)

else:
    print(max(dice1, dice2, dice3)*100)

 

🤔 문제 풀이

  • elif dice1==dice2 or dice1 == dice3 or dice2 == dice3:
    • same_number = dice1 if dice1 == dice2 or dice1 == dice3
      • 여기까지가 dice1에 대한 조건문이에요 dice1이 dice2와 3과 같으면 dice1로 할 거란 거예요!
    • else dice2
      • 그 외에는 dice2로 끌고 올게요!
    • prize = 1000 + same_number * 100
      • 주사위 2개가 같을 때의 식별자를 same_number로 했기 때문에 주사위 자리엔 식별자를 넣었어요!

이번에도 도움을 여기저기 많이 받은 문제였어요

캬~

도와주셔서 감사하고, 더 배워갈 수 있도록 해주셔서 감사해요

파이팅~!

+ Recent posts