반응형
1. 문제 추상화
입력된 문자열의 각 문자와 대응되는 정수와 대응하는 시간의 총합을 구하시오
2. 알고리즘
첫 번째 방법
Swtich 문 사용하기
두 번째 방법
아스키코드를 활용하여 if-elseif문 구현하기
3. 풀이
첫번째 방법 ( Switch문 )
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String data = sc.next();
int timeForCall = 0;
for(int i = 0; i< data.length(); i++) {
int num = switchCharToNum(data.charAt(i));
timeForCall += num+1;
}
System.out.println(timeForCall);
}
public static int switchCharToNum(char data) {
//Swtich 문 구현
int value = 0;
switch(data) {
case 'A' : case 'B' : case 'C' : value = 2; break;
case 'D' : case 'E' : case 'F' : value = 3; break;
case 'G' : case 'H' : case 'I' : value = 4; break;
case 'J' : case 'K' : case 'L' : value = 5; break;
case 'M' : case 'N' : case 'O' : value = 6; break;
case 'P' : case 'Q' : case 'R' : case 'S' : value = 7; break;
case 'T' : case 'U' : case 'V' : value = 8; break;
case 'W' : case 'X' : case 'Y' : case 'Z' : value = 9; break;
default : value = 0; break;
}
return value;
}
}
두 번째 방법 ( if - else 문 )
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
String data = sc.next();
int timeForCall = 0;
for(int i =0; i < data.length(); i++) {
timeForCall += swtichCharToNum(data.charAt(i))+1;
}
System.out.println(timeForCall);
}
public static int swtichCharToNum(char ch) {
int value = 0;
if(ch >= 65 && ch < 68) value = 2;
else if(ch < 71) value = 3;
else if(ch < 74) value = 4;
else if(ch < 77) value = 5;
else if(ch < 80) value = 6;
else if(ch < 84) value = 7;
else if(ch < 87) value = 8;
else if(ch < 91) value = 9;
else value = 0;
return value;
}
}
반응형
'문제풀이' 카테고리의 다른 글
[JAVA] 백준 2292번 벌집 : 부등식과 반복문 1 (0) | 2021.07.15 |
---|---|
[JAVA] 백준 1316번 그룹단어 체커 : 중복값 (0) | 2021.07.13 |
[JAVA] 백준 1157번 단어 공부 : 이해하기 쉬운 코드란? (0) | 2021.07.11 |
[JAVA] 백준 10809번 알파벳 찾기 : 아스키코드 (0) | 2021.07.11 |
[JAVA] 백준 1065번 한수 : 등차수열 (0) | 2021.07.10 |