[첫번째 생각]
1번은 2초
2번은 3초
3번은 4초
즉, 번호에 +1만하면 초가 되므로 고려하지 않아도됨
1번일 때, ABC
2번일 때, DEF
...문자와 숫자를 매핑시키려면 어떤 방법이 좋을까?
[문제점 발생]
switch문을 생각하여 매핑시키자
[두번째 생각]
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String input = sc.nextLine();
char arr[] = input.toCharArray();
int sum = 0;
for(char i: arr) {
sum += Dial(i) + 1;
}
System.out.println(sum);
}
public static int Dial(char input) {
switch(input) {
case'A': case 'B':case 'C':
return 2;
case'D': case 'E':case 'F':
return 3;
case'G': case 'H':case 'I':
return 4;
case'J': case 'K':case 'L':
return 5;
case'M': case 'N':case 'O':
return 6;
case'P': case 'Q':case 'R':case 'S':
return 7;
case'T': case 'U':case 'V':
return 8;
case'W': case 'X':case 'Y':case 'Z':
return 9;
default: return -1;
}
}
}
[훨씬 쉬운 코드]
public class BOJ5622 {
public static void main(String[] args) {
final int num[] = {3,3,3,4,4,4,5,5,5,6,6,6,7,7,7,8,8,8,8,9,9,9,10,10,10,10};
Scanner sc = new Scanner(System.in);
String str = sc.nextLine();
int sum = 0;
for(int i = 0 ; i < str.length() ; i++)
sum += num[str.charAt(i)-65];
System.out.println(sum);
}
}
ABC인 경우에는 1, DEF인 경우에는 2 처럼 숫자를 기준으로 묶었었다
이 코드는 A(=0)인 경우는 3 B(=1)인 경우도 3 처럼... 각 알파벳을 기준으로 세웠다.
그리고 각 값을 넣어주었다.
관점을 바꿀 줄도 알자.
[결론]
'이제는 사용하지 않는 공부방 > Algorithm' 카테고리의 다른 글
[프로그래머스] 완전탐색문제: 모의고사 (0) | 2020.09.09 |
---|---|
백준 8단계 크로아티아알파벳 자바 (0) | 2020.04.18 |
백준 8단계 상수 자바 (0) | 2020.04.18 |
백준 8단계 단어의 개수 (0) | 2020.04.18 |
백준 8단계 문자열 반복 (0) | 2020.04.16 |