PS

[백준/Python] (G4) 전화번호 수수께끼 (Large) - 14370

MSHUN 2023. 11. 4.
반응형

Baekjoon Online Judge의 14370 전화번호 수수께끼 (Large) 문제의 Python풀이입니다.

 

14370번: 전화번호 수수께끼 (Large)

첫 줄에 테스트케이스의 개수 T가 주어진다. 각 테스트케이스에는 상대방이 제시한 스트링 S가 주어진다. S는 영어 대문자로만 이루어져 있다. 1≤ T ≤ 100이고, S의 길이는 3 이상 2000 이하이다.

www.acmicpc.net

💻코드

t = int(input())
for i in range(t):
    s = input()
    m = {'Z': 0, 'G': 8, 'X': 6, 'W': 2, 'U': 4, 'F': 5, 'H': 3, 'I': 9, 'V': 7, 'O': 1}
    c = {m[k]: s.count(k) for k in 'ZGXWUHFIVO'}
    c[3] -= c[8]
    c[5] -= c[4]
    c[7] -= c[5]
    c[9] -= c[5] + c[6] + c[8]
    c[1] -= c[0] + c[2] + c[4]
    print(f"Case #{i+1}: {''.join(str(j) * c[j] for j in sorted(c.keys()))}")

🧠풀이

Z는 ZERO인 0에만 있다.

G는 EIGHT인 8에만 있다.

X는 SIX인 6에만 있다.

W는 TWO인 2에만 있다.

U는 FOUR인 4에만 있다.

H는 THREE와 EIGHT인 3과 8에 있다. 8의 수는 알고있으므로 8의 수를 빼면 3을 구할 수 있다.

F는 FOUR와 FIVE인 4와 5에 있다. 4의 수를 빼주면 5의 수를 구할 수 있다.

I는 FIVE SIX EIGHT NINE인 5 6 7 9에 있다. 5 6 7의 수를 빼주면 9를 구할 수 있다.

V는 FIVE SEVEN인 5 7에 있다. 5의 수를 빼주면 7을 구할 수 있다.

O는 ZERO ONE TWO FOUR인 0 1 2 4에 있다. 0 1 2 4의 수를 빼주면 1을 구할 수 있다.

🤔느낀 점

문제 푸는 방법만 생각해내면 코드 짜는것은 어렵지 않았다.

Baekjoon Online Judge

반응형

댓글