https://www.acmicpc.net/problem/16968
16968번: 차량 번호판 1
00부터 99까지 총 100가지 중에서 00, 11, 22, 33, 44, 55, 66, 77, 88, 99가 불가능하다.
www.acmicpc.net
솔루션
알파벳이 가능한 경우의 수는 26, 숫자가 오는 경우의 수는 10가지 이다.
그런데, cc또는 dd가 오는 경우 이전과 같은 문자는 쓸 수 없기 떄문에 아래와 같은 경우는 -1을 해서 곱해준다.
코드
#include <iostream>
using namespace std;
string str;
int arr[4];
int main()
{
ios_base::sync_with_stdio(false);
cin.tie(NULL); cout.tie(NULL);
cin >> str;
for (int i = 0; i < str.size(); i++) {
if (i == 0) {
if (str[i] == 'd') {
arr[i] = 10;
}
else {
arr[i] = 26;
}
}
else {
if (str[i] == 'd') {
if (str[i - 1] == 'd') {
arr[i] = arr[i - 1] * 9;
}
else {
arr[i] = arr[i - 1] * 10;
}
}
else {
if (str[i - 1] == 'c') {
arr[i] = arr[i - 1] * 25;
}
else {
arr[i] = arr[i - 1] * 26;
}
}
}
}
cout << arr[str.size() - 1] << "\n";
}
'백준' 카테고리의 다른 글
C++[백준]11728번 배열 합치기 (0) | 2023.03.07 |
---|---|
C++[백준]16198번 에너지 모으기 (0) | 2023.03.07 |
C++[백준]20040번 사이클 게임 (0) | 2023.02.14 |
C++[백준]1781번 컵라면 (0) | 2023.02.14 |
C++[백준]16496번 큰 수 만들기 (0) | 2023.02.13 |