practivceAlgorithm/백준

[백준][Python] 4446 ROT12

findTheValue 2021. 7. 17. 09:35

처음엔 ord chr 쓰는줄 알았는데

도저히 그쪽으론 설계가 안돼서 노가다로 풂.

문제 함정은 testcase는 하나 띡 놓고

실상은 입력이 겁나 많이 들어간다는 것.

때문에 while로 무한 반복에 try except까지 써서 멈출 수 있게 해줘야 정답처리가 된다.

moem = ['a','i','y','e','o','u']
zaem = ['b','k','x','z','n','h','d','c','w','g','p','v','j','q','t','s','r','l','m','f']

# 무한입력. try except
while 1:
    try:
        S = input()
        ans = ""
        for i in range(len(S)):
            if S[i].lower() in moem:
                if S[i].isupper():
                    k = S[i].lower()
                    for j in range(6):
                        if moem[j] == k:
                            a = moem[(j+3)%6]
                            ans += a.upper()
                elif S[i].islower():
                    for j in range(6):
                        if moem[j] == S[i]:
                            a = moem[(j+3)%6]
                            ans += a
            elif S[i].lower() in zaem:
                if S[i].isupper():
                    k = S[i].lower()
                    for j in range(20):
                        if zaem[j] == k:
                            a = zaem[(j+10)%20]
                            ans += a.upper()
                elif S[i].islower():
                    for j in range(20):
                        if zaem[j] == S[i]:
                            a = zaem[(j+10)%20]
                            ans += a
            else:
                ans += S[i]

        print(ans)
    except:
        break