<코딩 테스트>
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
[ 제한사항 ]
numbers는 소문자로만 구성되어 있습니다.
numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
1 ≤ numbers의 길이 ≤ 50
"zero"는 numbers의 맨 앞에 올 수 없습니다.
<나의 풀이 과정>
우선 들어오는 String numbers의 값이 "onetwothreefourfivesixseveneightnine"
일때 이것을 어떻게 잘라서 배열에 담을까? 고민도 했었습니다.
그러다가 들어오는 이 문자열이 영어 "one", "two" 와 같다면 그 값을 0, 1로 바꿔주면 되겠다
라고 생각을 하였습니다.
Stirng 배열 두개를 만들고 replace All 을 사용하였으며,
처음에 오류가 났을 떄에는
이렇게 지정을 하지 않고
numbers += numbers.replaceAll (num[i], strNum[i]) 를 하여서
계속해서 1twothreefourfivesixseveneightnine+ 12threefourfivesixseveneightnine + 123fourfivesixseveneightnine
...이렇게 더해진 값이 출력되는 오류를 범했습니다.
<나의 풀이 코드>
class Solution {
public long solution(String numbers) {
long answer = 0;
String[] num = new String[] { "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
String[] strNum = new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", "9" };
for (int i = 0; i < strNum.length; i++) {
numbers = numbers.replaceAll(num[i], strNum[i]);
}
System.out.println(numbers);
answer = Long.parseLong(numbers);
return answer;
}
}
<다른 사람 풀이 코드>
class Solution {
public long solution(String numbers) {
String[] numbers_arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for (int i = 0; i < numbers_arr.length; i++) {
numbers = numbers.replaceAll(numbers_arr[i], String.valueOf(i));
}
long answer = Long.parseLong(numbers);
return answer;
}
}
<나의 풀이 코드>
https://school.programmers.co.kr/learn/courses/30/lessons/59403?language=oracle
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
'주니어 기초 코딩공부 > JAVA_programmers_코딩테스트' 카테고리의 다른 글
종이 자르기_programmers_lev00 (0) | 2022.12.17 |
---|---|
잘라서 배열로 저장하기_programmers_lev00 (0) | 2022.12.17 |
공 던지기_programmers_lev00 (0) | 2022.12.14 |
숨어있는 숫자의 덧셈 (2)_programmers_lev00 (0) | 2022.12.13 |
진료 순서 정하기_programmers_lev00 (0) | 2022.12.13 |