728x90
이 문제는 다이얼이 핵심이다.
문자열이 입력되는데, 문자 하나하나를 비교하여 해당 다이얼에 번호가 눌린다.
숫자1을 걸려면 총 2초가 필요하다는건 숫자1을 누르고 다이얼이 초기화 된다.
초기화 되면서 1초가 걸리는 것이다.
그러니 1,2,3 이라면 1초 + 1초 + 2초 + 1초 + 3초 + 1초 가 되는 것이다.
이 문제를 해결하기 위해서는 다이얼에 쓰여진 문자가 어떤 번호를 가르키는지가 중요하다.
저는 이 문제를 Switch case를 사용하여 풀이하였습니다.
import java.util.Scanner;
class Main {
public static void main(String args[]) {
Scanner sc = new Scanner(System.in);
String s = sc.nextLine();
int result = 0;
for(int i=0; i<s.length(); i++){
switch(s.charAt(i)){
case 'A': case 'B': case 'C': result += 2;
break;
case 'D': case 'E': case 'F': result += 3;
break;
case 'G': case 'H': case 'I': result += 4;
break;
case 'J': case 'K': case 'L': result += 5;
break;
case 'M': case 'N': case 'O': result += 6;
break;
case 'P': case 'Q': case 'R': case 'S': result += 7;
break;
case 'T': case 'U': case 'V': result += 8;
break;
case 'W': case 'X': case 'Y': case 'Z': result += 9;
break;
default: result += 0;
break;
}
}
System.out.println(result+s.length());
}
}
입력은 Scanner로 받았습니다.
입력된 문자열을 s 변수에 담습니다.
result는 결과를 출력하기 위한 변수입니다.
배열도 있고 해쉬도 있고 리스트도 있지만 이런 문제에는 switch case가 제일 좋다고 생각했습니다.
문자열 s 만큼 반복해주면서 그 문자가 해당하는 곳에 result 를 + 해주는 것입니다.
총 더해진 값에 + s의 문자열 길이 만큼 더해줍니다.
다이얼이 초기화된 횟수이며, 1초씩 걸리는 것을 더해줍니다.
728x90
'알고리즘 with JAVA' 카테고리의 다른 글
백준 1316번 그룹 단어 체커 - 자바 (0) | 2021.04.13 |
---|---|
백준 2941 크로아티아 알파벳 - 자바 (0) | 2021.04.13 |
백준 2908번 상수 - 자바 (0) | 2021.04.12 |
백준 1152번 단어의 개수 - 자바 (0) | 2021.04.11 |
백준 1157번 단어 공부 - 자바 (0) | 2021.04.09 |