아 개 노가다 했다
근데 case: 여러개를 합쳐서 쓸 수 있다는 걸 쓰고 난 다음에 알았다
스위치문을 자주 안 쓰다보니..ㅠㅠ 생각해보니까 비어있으면 넘어가는구나 흑흑..
다음부터는 이런 멍청한 짓 하지 말아야지..
그리고 다른 풀이를 보니까 charindex..? 이런식으로 또 아스키 코드 값 이용해서 푸는 분들도 있는 것 같던데
나도 다음에 조금 더 고수가 되고 겨울방학에 씨쁠쁠 공부할 땐 그렇게 풀어봐야겠다!
정답코드
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String input=sc.nextLine();
int sum=0;
input=input.toLowerCase();
for(int i=0; i<input.length(); i++) {
if (input.charAt(i)=='1') {
sum+=2;
} else if (input.charAt(i)=='0') {
sum+=11;
} else {
switch (input.charAt(i)) {
case 'a' : sum+=3; break;
case 'b' : sum+=3; break;
case 'c' : sum+=3; break;
case 'd' : sum+=4; break;
case 'e' : sum+=4; break;
case 'f' : sum+=4; break;
case 'g' : sum+=5; break;
case 'h' : sum+=5; break;
case 'i' : sum+=5; break;
case 'j' : sum+=6; break;
case 'k' : sum+=6; break;
case 'l' : sum+=6; break;
case 'm' : sum+=7; break;
case 'n' : sum+=7; break;
case 'o' : sum+=7; break;
case 'p' : sum+=8; break;
case 'q' : sum+=8; break;
case 'r' : sum+=8; break;
case 's' : sum+=8; break;
case 't' : sum+=9; break;
case 'u' : sum+=9; break;
case 'v' : sum+=9; break;
case 'w' : sum+=10; break;
case 'x' : sum+=10; break;
case 'y' : sum+=10; break;
case 'z' : sum+=10; break;
default: break;
}
}
}
System.out.println(sum);
}
}
댓글