https://programmers.co.kr/learn/courses/30/lessons/81301
이번에 지원했던 카카오 채용연계형 인턴십에 나왔던 문제다. 후...지금도 알알못이긴 하지만 당시에는 더욱 잘 몰랐기에 너무 어려웠던 역시나 탈랐했었다.
다만, 프로그래머스에 문제가 올라와서 테스트때 작성했던 코드와는 다른 방법으로 한번 풀어봤다.
이전에는 이런식으로 풀이했다.
1. 주어진 문자열의 길이만큼 반복문을 실행한다.
2. 임시 String 값을 하나 선언하여 문자형을 하나씩 더해줄 것이다.
3. 그런데 주어진 문자형이 숫자이거나 더하는 도중 문자열이 숫자에 해당되면 해당 숫자를 결과 String에 더한다.
4. 숫자와 문자를 판별해주는 것은 별도의 메소드를 만들어 Switch문으로 작성한다.
이렇게 해도 답은 잘 나온다. 다만, 공부하다보니 더 쉬운 함수를 생각해냈다.
바로 java.string.replaceAll !!! 이녀석만 있으면 10줄도 안되어서 끝난다.
[알고리즘 flow]
1. 각각 숫자와 숫자영문을 배열로 선언한다. 0 ~ 9, zero ~ nine
2. 해당 배열의 길이만큼 반복하면서 replaceAll 함수로 바꿔준다.
3. 결과를 숫자로 변환하여 리턴
[작성코드]
public int solution(String s) {
int answer = 0;
String [] text = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
String [] num = {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"};
for (int i = 0; i < text.length; i++) {
s = s.replaceAll(text[i], num[i]);
}
System.out.println(s);
answer = Integer.parseInt(s);
return answer;
}
넘나 간단한 것...
그래도 이제 1레벨 정도는 조금 여유있게 푸는 것 같다. 최근 회사에 적응하느라 약 2주간 공부를 하지 못했는데 그래서 인지 조금은 감이 떨어진 것 같다. 다시 페이스를 천천히 끌어올려보자!
[깃허브링크]
'문제풀이 > 프로그래머스' 카테고리의 다른 글
예산 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.07.30 |
---|---|
3진법 뒤집기 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.07.29 |
다트게임 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.07.04 |
최대공약수와 최소공배수 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.06.29 |
약수의 개수와 덧셈 / 프로그래머스 연습문제 / programmers / level1 / Java (0) | 2021.06.11 |