티스토리 뷰
https://www.acmicpc.net/problem/5622
이 문제를 보면 주어진 문자열에서 각 문자를 찾아 if ~ else 문으로 알파벳의 아스키 코드를 비교하거나 switch 문을 통해 비교하여 문제를 해결할 수 있겠다고 생각했습니다.
먼저 switch 문을 통해 문제를 해결한 코드는 다음과 같습니다. 번호를 누르는데 걸리는 시간은 번호 + 1입니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String alphabets = br.readLine();
int answer = 0;
for (char alpha : alphabets.toCharArray()) {
switch (alpha) {
case 'A': case 'B': case 'C':
answer += 3;
break;
case 'D': case 'E': case 'F':
answer += 4;
break;
case 'G': case 'H': case 'I':
answer += 5;
break;
case 'J': case 'K': case 'L':
answer += 6;
break;
case 'M': case 'N': case 'O':
answer += 7;
break;
case 'P': case 'Q': case 'R': case 'S':
answer += 8;
break;
case 'T': case 'U': case 'V':
answer += 9;
break;
case 'W': case 'X': case 'Y': case 'Z':
answer += 10;
break;
}
}
System.out.println(answer);
}
}
Map 자료구조를 통해서도 문제를 해결할 수 있습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) throws IOException {
Map<String, Integer> dial = new HashMap<>(){
{
put("A", 2); put("B", 2); put("C", 2);
put("D", 3); put("E", 3); put("F", 3);
put("G", 4); put("H", 4); put("I", 4);
put("J", 5); put("K", 5); put("L", 5);
put("M", 6); put("N", 6); put("O", 6);
put("P", 7); put("Q", 7); put("R", 7); put("S", 7);
put("T", 8); put("U", 8); put("V", 8);
put("W", 9); put("X", 9); put("Y", 9); put("Z", 9);
}
};
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] alphabets = br.readLine().split("");
int answer = 0;
for (String alpha : alphabets) {
answer += dial.get(alpha) + 1;
}
System.out.println(answer);
}
}
더 좋은 해결 방법이 있다면 공유해주세요 :)
'알고리즘' 카테고리의 다른 글
[백준알고리즘] 1316 - 그룹 단어 체커 (0) | 2021.05.19 |
---|---|
[백준알고리즘] 2941 - 크로아티아 알파벳 (0) | 2021.05.18 |
[백준알고리즘] 2908 - 상수 (0) | 2021.05.14 |
[백준알고리즘] 1152 - 단어의 개수 (0) | 2021.05.13 |
[백준알고리즘] 1065 - 한수 (0) | 2021.05.12 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- sort
- DFS
- ionic
- CodePipeline
- BFS
- Algorithm
- array
- CodeDeploy
- 수학
- Dynamic Programming
- search
- Combination
- cloudfront
- programmers
- string
- ECR
- spring
- 조합
- CodeCommit
- java
- AWS
- 순열
- 프로그래머스
- SWIFT
- 소수
- map
- permutation
- 에라토스테네스의 체
- Baekjoon
- EC2
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함