일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 빅데이터분석기사
- 프로그래머스 나누어 떨어지는 숫자 배열 파이썬
- 프로그래머스 가운데 글자 가져오기 자바
- 프로그래머스 나누어 떨어지는 숫자 배열 자바
- 최단 경로 알고리즘
- docker 완전 삭제
- m1 docker install
- m1 docker
- 핸즈온 머신러닝
- 트리의 지름 java
- 프로그래머스 가운데 글자 가져오기 python
- 최소 스패닝 트리 자바
- 코드업 1020 자바
- codeup 1020 자바
- docker remove
- 코드업 1020 java
- 나누어 떨어지는 숫자 배열 java
- 가운데 글자 가져오기 자바
- 최소 스패닝 트리
- 가운데 글자 가져오기 python
- 청년 Ai Big Data 아카데미
- codeup 1020 java
- 프로그래머스 가운데 글자 가져오기 파이썬
- 청년 AI Big Data 아카데미 13기
- 나누어 떨어지는 숫자 배열 python
- docker 삭제
- 가운데 글자 가져오기 파이썬
- 빅분기실기
- 트리의 지름 자바
- 가운데 글자 가져오기 java
- Today
- Total
NineTwo meet you
[백준/자바] 16968 차량 번호판 1 본문
문제 & 예제
문제
상도시의 차량 번호판 형식이 주어졌을 때, 가능한 차량 번호판의 개수를 구해보자.
- 번호판에 사용할 수 있는 숫자는 0, 1, 2, ..., 8, 9이다.
- 사용할 수 있는 문자는 a, b, c, d, ..., y, z이다.
- 차량 번호판의 형식은 최대 4글자이고, c와 d로 이루어진 문자열로 나타낼 수 있다.
- c는 문자가 위치하는 자리, d는 숫자가 위치하는 자리이다.
- 같은 문자 또는 숫자가 연속해서 2번 나타나면 안 된다.
예를 들어, 형식이 "cd"이면, a1, d4, h5, k4 등이 가능하다. 형식이 "dd"인 경우에 01, 10, 34, 69는 가능하지만, 00, 11, 55, 66은 같은 숫자가 2번 연속해서 불가능하다.
입력
첫째 줄에 차량 번호판의 형식이 주어진다. 형식은 길이가 4보다 작거나 같으며, c와 d로만 이루어져 있다.
출력
첫째 줄에 가능한 차량 번호판의 개수를 출력한다.
예제
예제 입력 1 | 예제 출력 1 |
dd | 90 |
00부터 99까지 총 100가지 중에서 00, 11, 22, 33, 44, 55, 66, 77, 88, 99가 불가능하다.
예제 입력 2 | 예제 출력 2 |
cc | 650 |
262 = 676가지 중에서 같은 문자가 중복되는 26가지가 불가능하다.
예제 입력 3 | 예제 출력 3 |
dcdd | 23400 |
설명
경우의 수 문제다.
c => 문자 자리 (26가지)
d => 숫자 자리 (10가지)
의 경우가 있지만 바로 앞에 같은 문자나 숫자가 위치하면 안 된다.
dd의 경우 첫 번째 d는 10가지의 경우지만 두 번째 d는 9가지의 경우를 나타내게 된다.
cc의 경우 첫 번째 c는 26가지의 경우지만 두 번째 c는 25가지의 경우를 나타내게 된다.
그렇다면 ddd나 dddd의 경우는 어떨까?
ddd일 경우 세 번째 d의 경우 두번째 d와 다르기만 한다면 첫 번째 d와 같거나 달라도 상관이 없기 때문에 9의 경우를 나타내게 된다. => ex) 252, 258,...
dddd일 경우 순서대로 10, 9, 9의 경우의 수를 가지고 마지막 d의 경우에도 세 번째 d와 다르기만 한다면 두 번째나 첫 번째 d에는 전혀 상관이 없기 때문에 9의 경우를 가지게 된다. => ex) 2585, 2582,...
따라서 숫자의 경우 자리에 따라 10이나 9의 경우만 가지게 되고 문자의 경우 자리에 따라 26이나 25의 경우만 가지게 된다.
그럼 언제 9 -> 10이나 25 -> 26의 경우의 수로 바뀌는 것일까?
바로 숫자 문자 순이거나 문자 숫자 순인 경우 앞자리를 신경 쓰지 않고 모든 숫자나 문자를 사용할 수 있게 되므로 각각 10, 26의 경우를 다시 사용하게 된다.
코드
'프로그래밍 문제 > 백준' 카테고리의 다른 글
[백준/자바] 2875 대회 or 인턴 (0) | 2020.12.24 |
---|---|
[백준/자바] 16917 양념 반 후라이드 반 (0) | 2020.12.22 |
[백준/자바] 20055 컨베이어 벨트 위의 로봇 (0) | 2020.11.10 |
[백준/자바] 19238 스타트 택시 (0) | 2020.11.10 |
[백준/자바/파이썬] 2599 짝 정하기 (0) | 2020.08.02 |