728x90
반응형
2021.10.11
61번째 포스팅
입사 217일차.
코테 문제풀이 1주차 2번 문제
0. 문제
① 2021 카카오 채용연계형 인턴십 : 숫자 문자열과 영단어
② 설명
네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다. 1478 → "one4seveneight" 234567 → "23four5six7" 10203 → "1zerotwozero3" 이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요. |
③ 링크
1. 접근방법
생각해낸 방법은 1가지
① ASCII코드를 이용해서 숫자가 들어올 경우 그대로 Return.
문자일 경우, 영단어가 완성될때까지 저장한 뒤, 매칭되는 문자열의 숫자를 Return
2. 풀이
① 접근방법 : ①
② 풀이
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
32
33
34
35
36
37
38
39
40
41
42
43
44
|
class Solution {
/**
* 시작시간 : 19:12
* 완료시간 : 19:33
*/
public int solution(String s) {
int answer = solveAnswer(s);
return answer;
}
public int solveAnswer(String s) {
String number = "";
String engNum = "";
for (int i = 0; i < s.length(); i++) {
// 1. ASCII 코드 58 = 10진법 숫자 10
if (s.charAt(i) < 58) {
number += s.charAt(i);
}
else {
// 2. 문자는 engNum에 문자열로 저장한 뒤, switch-case를 통해 매칭되는 문자열의 숫자를 Return
engNum += s.charAt(i);
switch(engNum) {
case "zero": number += "0"; engNum = ""; break;
case "one": number += "1"; engNum = ""; break;
case "two": number += "2"; engNum = ""; break;
case "three": number += "3"; engNum = ""; break;
case "four": number += "4"; engNum = ""; break;
case "five": number += "5"; engNum = ""; break;
case "six": number += "6"; engNum = ""; break;
case "seven": number += "7"; engNum = ""; break;
case "eight": number += "8"; engNum = ""; break;
case "nine": number += "9"; engNum = ""; break;
default:
}
}
}
// 3. 완성된 문자열은 int로 parsing하여 Return
int answer = Integer.parseInt(number);
return answer;
}
}
|
cs |
3. 결과
728x90
반응형
'코딩테스트' 카테고리의 다른 글
[코테/JAVA] 프로그래머스 : K번째수 (0) | 2021.10.17 |
---|---|
[코테/JAVA] 2020 카카오 인턴십 : 키패드 누르기 (0) | 2021.10.17 |
[코테/JAVA] 월간 코드 챌린지 시즌3 : 없는 숫자 더하기 (0) | 2021.10.11 |
[코테/JAVA] 월간 코드 챌린지 시즌1 : 내적 (0) | 2021.05.06 |
[코테/JAVA] 2021 Dev-Matching: 웹 백엔드 개발자(상반기) : 행렬 테두리 회전하기 (0) | 2021.05.02 |
댓글