반응형
    
    
    
  5622번: 다이얼
첫째 줄에 알파벳 대문자로 이루어진 단어가 주어진다. 단어의 길이는 2보다 크거나 같고, 15보다 작거나 같다.
www.acmicpc.net
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] 백준 1316번 그룹단어 체커 : 중복값 (0) | 2021.07.13 | 
|---|---|
| [JAVA] 백준 5622번 크로아티아 알파벳 : 문자열 탐색 (0) | 2021.07.13 | 
| [JAVA] 백준 2908번 상수 : 문자열 역순 출력 (0) | 2021.07.12 | 
| [JAVA] 백준 1157번 단어 공부 : 이해하기 쉬운 코드란? (0) | 2021.07.11 | 
| [JAVA] 백준 10809번 알파벳 찾기 : 아스키코드 (0) | 2021.07.11 | 
