반응형
다이얼을 걸기 위한 최소 시간을 구하는 문제이다.
접근 방법)
각 대문자 알파벳에 해당하는 다이얼 번호가 있다. 조건문을 이용하여 알파벳을 입력받았을 때 그에 해당하는 다이얼 번호를 할당하고, 할당받은 다이얼 번호의 총합을 구하면 된다.먼저 입력값을 받은 후 알파벳을 하나씩 처리하기 위해 입력 값 길이 만큼 반복하는 for문과 charAt()을 이용하여 알파벳을 하나씩 뽑아낼 수 있다. 그 후 조건문을 생성하여 다이얼 번호 구한다.
▷ 알파벳 하나씩 조건문 넣기
String str = "ABA";
int sum = 0; // 총 합 구하기(출력할 값)
for(int i = 0; i < str.length(); i++){
char ch = str.charAt(i); // 문자 하나씩 뽑기
if((int)ch >= 'A' && (int)ch <= 'C'){ // A~C 알파벳 다이얼 번호는 3
sum = sum+3;
}else if((int)ch >= 'D' && (int)ch <= 'F'){ // D~F 알파벳 다이얼 번호는 4
sum = sum+4;
}
}
정답 코드 1)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.next();
int sum = 0;
for(int i = 0; i < str.length(); i++){
char ch = str.charAt(i);
if((int)ch >= 'A' && (int)ch <= 'C'){
sum = sum+3;
}else if((int)ch >= 'D' && (int)ch <= 'F'){
sum = sum+4;
}else if((int)ch >= 'G' && (int)ch <= 'I'){
sum = sum+5;
}else if((int)ch >= 'J' && (int)ch <= 'L'){
sum = sum+6;
}else if((int)ch >= 'M' && (int)ch <= 'O'){
sum = sum+7;
}else if((int)ch >= 'P' && (int)ch <= 'S'){
sum = sum+8;
}else if((int)ch >= 'T' && (int)ch <= 'V'){
sum = sum+9;
}else if((int)ch >= 'W' && (int)ch <= 'Z'){
sum = sum+10;
}
}
System.out.print(sum);
}
}
if문을 사용하여 대문자 알파벳의 아스키 코드 값을 이용하여 조건문을 만들고, 조건에 해당하는 다이얼 번호를 누적해서 더한 후 출력하는 방식을 사용하였다.
정답 코드 2)
import java.util.Scanner;
class Main{
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
String str = sc.next();
int sum = 0;
for(int i = 0; i < str.length(); i++){
switch(str.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.print(sum);
}
}
switch-case문을 사용하여 각각 알파벳에 해당하는 케이스 별로 다이얼 번호 값을 누적하여 더하는 방식으로 결과 값을 출력했다.
반응형
'Baekjoon 자바 코드 > 문자열' 카테고리의 다른 글
[백준] 11718번 그대로 출력하기 코드 (Java 자바) (0) | 2024.09.30 |
---|---|
[백준] 2908번 상수 풀이 코드 (Java 자바) (0) | 2024.09.20 |
[백준] 1152번 단어의 개수 풀이 코드 (Java 자바) (0) | 2024.09.04 |
[백준] 2675번 문자열 반복 풀이 코드 (Java 자바) (1) | 2024.09.03 |
[백준] 10809번 알파벳 찾기 풀이 코드 (Java 자바) (0) | 2024.09.02 |