
🔍문제 분석
✔️ 출처
https://school.programmers.co.kr/learn/courses/30/lessons/81301
📖 문제

문자열 변환 문제
🔅 문제풀이
처음 풀이는 숫자만 있을 때랑 문자열이랑 같이 있을 때를 고려해서 replaceAll로 숫자만있는건 empty상태로 만들었다
class Solution {
public int solution(String s) {
int answer = 0;
String[] num = {"zero","one","two","three","four","five","six","seven","eight","nine"};
String tmp = s.replaceAll("[0-9]", "");
if(!tmp.isEmpty()){
for(int i = 0; i < num.length; i++){
s = s.replace(num[i], String.format("%d",i));
}
answer = Integer.parseInt(s);
} else {
answer = Integer.parseInt(s);
}
return answer;
}
}

순간 반복문의 i값을 문자열로 바꾸는게 생각이 안나서 지난 보물찾기 문제에서 썼던 String.format이 생각나서 섰다. 속도가 좀 느리다...
🔅 2차 문제풀이
class Solution {
public int solution(String s) {
int answer = 0;
String[] num = {"zero","one","two","three","four","five","six","seven","eight","nine"};
for(int i = 0; i < num.length; i++){
s = s.replace(num[i], Integer.toString(i));
}
answer = Integer.parseInt(s);
return answer;
}
}

replace의 target이 아니면 안바뀌기에 굳이 if문을 써서 숫자만 있을때를 처리하지 않아도 된다.
i를 문자열로 처리해줄 Integer.toString()이 있었다.
❗ 오답노트 / 필요한 지식
- 코드를 짤때 해당 메소드에 대해 더 생각할 필요가 있다.
- 처리 속도의 대한 이해가 필요한 것 같다.
'programmers > Kakao' 카테고리의 다른 글
2019 KAKAO BLIND RECRUITMENT 실패율 (0) | 2024.06.27 |
---|---|
2019 카카오 개발자 겨울 인턴십 크레인 인형뽑기 게임 (0) | 2024.06.27 |
2018 KAKAO BLIND RECRUITMENT [1차] 비밀지도 (0) | 2024.06.26 |