8436번 Kamil
이왜틀?
4년 전 틀린 문제.
문제가 조금 복잡하게 써 있지만 이해하면 간단한 문제인데 왜 틀렸을까?
char[] a=br.readLine().toCharArray();
int r=0;
for(int i=0;i<a.length;i++){
if(a[i]=='T'||a[i]=='D'||a[i]=='L'||a[i]=='F') r++;
}
bw.write(r*2+"");
이런 멍청이!!!
숫자를 구하고 2를 곱하는 실수를 저질렀다.
경우의 수를 구하려면 제곱해야하는 것인데…
설계
카밀이 잘못 발음하는 경우는 3가지이다.
- K를 T로
- G를 D로
- R을 L 또는 F로
그 반대 경우는 없다.
즉, T D L F 발음의 경우 각각 K G R R 일 수 있다.
그러니 T D L F 개수만큼 2를 제곱하면 된다.
구현
char[] arr = br.readLine().toCharArray();
int count = 0;
for (char c : arr) {
if (c == 'T' || c == 'D' || c == 'L' || c == 'F') {
count++;
}
}
bw.write(String.format("%.0f", Math.pow(2, count)));
채점
반성
브론즈 문제 몇 개 조져주니 상당히 힐링이 된다.
항상 어렵게만 살 수 없는 법이다.
이제 다시 내일부터는 난이도 있는 문제에 들이받아봐야지.
코드 확인