Koala - 12기/기초 알고리즘 스터디

[백준/Python] 11800 Tawla

알 수 없는 사용자 2023. 9. 21. 13:16
T=int(input())

L=[]

K=[]

P=''

for i in range (T) :

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

    K.append(a)

    K.append(b)

    K.sort(reverse=True)

    if a==b :

        if a==1 :

            L.append("Habb Yakk")

        elif a==2:

            L.append("Dobara")

        elif a==3:

            L.append("Dousa")

        elif a==4:

            L.append("Dorgy")

        elif a==5:

            L.append("Dabash")

        elif a==6:

            L.append("Dosh")

    elif (a==5 and b==6) or (a==6 and b==5) :

        L.append("Sheesh Beesh")

    else :

        for j in K :

            if j==6 :

                P+="Sheesh"

            elif j==5 :

                P+="Bang"

            elif j==4 :

                P+= "Ghar"

            elif j==3 :

                P+="Seh"

            elif j==2:

                P+="Doh"

            elif j==1 :

                P+="Yakk"

            P+=" "

        L.append(P)

    K=[]

    P=''

for u in range (T) :

    print("Case %d: %s" %(u+1,L[u]))

딕셔너리를 공부하기 전 지식으로 풀었을 때 나온 결과이다. 딱히 틀린 것이 없지만 코드가 매우 길게 나온다.

D1={1: 'Yakk' , 2: 'Doh', 3: 'Seh', 4: 'Ghar', 5: 'Bang', 6: 'Sheesh'}

D2={1: "Habb Yakk", 2: "Dobara", 3: "Dousa", 4: "Dorgy", 5: "Dabash", 6: "Dosh"}

L=[]

T=int(input())

for i in range (T):

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

    if (a==6 and b==5) or (a==5 and b==6) :

        L.append(D1[6]+" "+"Beesh")

    elif a>b :

        L.append(D1[a]+" "+D1[b])

    elif a<b :

        L.append(D1[b]+" "+D1[a])

    elif a==b :

        L.append(D2[a])

        

for j in range (T) :

    print("Case %d: %s" %(j+1,L[j]))

딕셔너리를 사용하니 코드를 한번에 보기 쉽고 더 효율적으로 작성할 수 있다. 딕셔너리를 알고 푸니 훨씬 더 쉬운 문제였다.

 

 

https://www.acmicpc.net/problem/11800