BOJ_16968_차량 번호판1
2021. 9. 7. 09:12ㆍ백준 알고리즘(BOJ)
1
구분: brute-force
언어: java
전략:
- 코드를 짠다고 생각하지 말고, 수학 문제를 푼다고 생각해보자
- 숫자는 10가지, 문자는 26가지가 있다.
- **** - 각 자리에 들어갈 수 있는 문자나 숫자는 내 바로 앞것과 같지만 않으면 된다 --> 즉, 내 앞꺼랑만 다르면 된다
- 따라서 내 앞이 숫자면, 그 다음에는 그것만 아니면 되고(9가지), 문자이어도 동일하다(25)가지
- 내 앞의 것을 살피고, 단 한개와만 같지 않게 구한다.
2. 코드
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
String str = scanner.next();
char[] carnum = new char[str.length()];
for(int i = 0; i<carnum.length; i++) {
carnum[i] = str.charAt(i);
}
//정답
int result = 1;
//맨 처음에 c라면
if(carnum[0]=='c')
result*= 26;
else //d라면
result*= 10;
for(int i = 1; i<carnum.length; i++) {
//이전것과 같다면 count를 1감소
if(carnum[i]==carnum[i-1]) {
if(carnum[i]=='c')
result*=25;
else
result*=9;
}
//같지 않아 -> count를 현재의 값으로 초기화
else {
//지금이 c라면
if(carnum[i]=='c')
result*=26;
else //d라면
result*=10;
}
}
System.out.println(result);
}
}
3
- brute-force라고 해서 그냥 순열 조합부터 만들어버렸다 --> 좀 더 살펴보자
- 실제 수학 문제를 푸는 것처럼 문제에 접근하였다.
- 연속되는 ddd나 ccc같은 경우 모두가 달라야 한다고 생각해서 계속 오답이었다.--> 정답을 앞에것만 달라도 된다.
'백준 알고리즘(BOJ)' 카테고리의 다른 글
BOJ_2644_촌수계산 (0) | 2021.09.15 |
---|---|
BOJ_2529_부등호 (0) | 2021.09.08 |
BOJ_7568_덩치 (0) | 2021.09.01 |
BOJ_17070_파이프 옮기기1 (0) | 2021.08.20 |
BOJ_1987_알파벳 (0) | 2021.08.19 |