본문 바로가기

알고리즘/백준

[백준/5622/Java]다이얼

[백준/5622/Java]다이얼

풀이1

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		String str = br.readLine();
		char[] cArr = str.toCharArray();
		int result = 0;
		
		for (int i = 0; i < cArr.length; i++) {
			if(cArr[i] == 'A' || cArr[i] == 'B' || cArr[i] == 'C') {
				result += 3;
			} else if(cArr[i] == 'D' || cArr[i] == 'E' || cArr[i] == 'F') {
				result += 4;
			} else if(cArr[i] == 'G' || cArr[i] == 'H' || cArr[i] == 'I') {
				result += 5;
			} else if(cArr[i] == 'J' || cArr[i] == 'K' || cArr[i] == 'L') {
				result += 6;
			} else if(cArr[i] == 'M' || cArr[i] == 'N' || cArr[i] == 'O') {
				result += 7;
			} else if(cArr[i] == 'P' || cArr[i] == 'Q' || cArr[i] == 'R' || cArr[i] == 'S') {
				result += 8;
			} else if(cArr[i] == 'T' || cArr[i] == 'U' || cArr[i] == 'V') {
				result += 9;
			} else if(cArr[i] == 'W' || cArr[i] == 'X' || cArr[i] == 'Y' || cArr[i] == 'Z') {
				result += 10;
			} 
		}

		bw.write(Integer.toString(result));
		bw.flush();
		bw.close();
	}
}

풀이2

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));

		int[] arr = {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};
		String str = br.readLine();
		int result = 0;
		
		for (int i = 0; i < str.length(); i++) {
			int time = arr[str.charAt(i) - 65];		
			result += time;
		}
		
		bw.write(String.valueOf(result));
		bw.flush();
		bw.close();
	}
}

후기

풀이1은 다이얼마다 조건을 나누고 입력받은 문자열이 해당 조건을 탈 경우에 시간을 증가시켜주는 로직으로 짯습니다.

하지만 코드가 지저분해서 다른분들의 처리 결과를 보면서 풀이2와 같이 변경해보았습니다.

아스키 코드를 이용해서 처리를 하니 훨씬 심플한 처리가 가능하게 되었네요

 

 

728x90
반응형