반응형


1. Scanner를 이용한 방법
import java.util.Scanner;
public class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String word = sc.next();
int sum = 0;
for(int i=0; i<word.length(); i++){
switch (word.charAt(i)) {
case 'A': case 'B': case 'C':
sum += 3;
break;
case 'D': case 'E': case 'F':
sum += 4;
break;
case 'G': case 'H': case 'I':
sum += 5;
break;
case 'J': case 'K': case 'L':
sum += 6;
break;
case 'M': case 'N': case 'O':
sum += 7;
break;
case 'P': case 'Q': case 'R': case 'S':
sum += 8;
break;
case 'T': case 'U': case 'V':
sum += 9;
break;
case 'W': case 'X': case 'Y': case 'Z':
sum += 10;
break;
}
}
System.out.println(sum);
sc.close();
}
}
2. BufferedReader를 이용한 방법
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main{
public static void main(String[] args)throws IOException{
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String word = br.readLine();
int sum = 0;
for(int i=0; i<word.length(); i++){
switch (word.charAt(i)) {
case 'A': case 'B': case 'C':
sum += 3;
break;
case 'D': case 'E': case 'F':
sum += 4;
break;
case 'G': case 'H': case 'I':
sum += 5;
break;
case 'J': case 'K': case 'L':
sum += 6;
break;
case 'M': case 'N': case 'O':
sum += 7;
break;
case 'P': case 'Q': case 'R': case 'S':
sum += 8;
break;
case 'T': case 'U': case 'V':
sum += 9;
break;
case 'W': case 'X': case 'Y': case 'Z':
sum += 10;
break;
}
}
System.out.println(sum);
br.close();
}
}
처음에 charAt()으로 추출해서 ASCII 코드를 뽑아서 A의 값인 65를 빼는 방식으로 어떻게 해보려고 했는데 전혀 감이 안잡혀서 고민하다보니 switch ~ case 문으로 쓸 수 있다는 걸 깨닫고 이용하여 풀었다
반응형
'알고리즘 > 백준' 카테고리의 다른 글
| [백준] 25083 - 새싹 (0) | 2024.03.03 |
|---|---|
| [백준] 11718 - 그대로 출력하기 (0) | 2024.03.02 |
| [백준] 2908 - 상수 (0) | 2024.02.29 |
| [백준] 1152 - 단어의 개수 (0) | 2024.02.28 |
| [백준] 2675 - 문자열 반복 (0) | 2024.02.27 |