Baekjoon

[BOJ / 백준] 16968번 차량 번호판 1 파이썬(Python) 문제 풀이

728x90

 

 

문제

 

문제 링크 : https://www.acmicpc.net/problem/16968

 

16968번: 차량 번호판 1

00부터 99까지 총 100가지 중에서 00, 11, 22, 33, 44, 55, 66, 77, 88, 99가 불가능하다.

www.acmicpc.net

 

입력 복사 

> 예제 입력 1

dd

 

> 예제 입력 2

cc

 

> 예제 입력 3

dcdd

 

 

 

 

 

CODE 1

s = input()

if s[0] == 'c':
    answer = 26
else:
    answer = 10

for i in range(1, len(s)):
    if s[i] == 'c':
        if s[i - 1] == 'c':
            answer *= 25
        else:
            answer *= 26
    else:
        if s[i - 1] == 'd':
            answer *= 9
        else:
            answer *= 10

print(answer)

 

 

 

CODE 2

forms = {'c': 26, 'd': 10}
s = input()

answer = forms[s[0]]

for i in range(1, len(s)):
    mul = forms[s[i]]
    if s[i] == s[i - 1]:
        mul -= 1
    answer *= mul

print(answer)

 

 

 

풀이

'c' 는 문자가 위치하는 자리이므로 26가지가 가능하고,

'd'는 숫자가 위치하는 자리이므로 10가지가 가능하다.

 

연속해서 나타나는 경우는 c와 d 각각 (26-1), (10-1) 가지 가능하다

 

CODE 1의 경우 c와 d가 연속하는 경우를 알기 위해, 모든 조합을 조건문으로 작성하였다

CODE 2의 경우 c와 d일 때 가능한 수를 딕셔너리로 선언한 후, 조건문 대신 키 값을 찾아와 사용하였다.

 

 

 

 

결과

 

 

 

 

 

 

 

728x90