-
[프로그래머스] JavaScript | 숫자 문자열과 영단어Algorithm 2022. 8. 15. 18:14
https://school.programmers.co.kr/learn/courses/30/lessons/81301
문제
풀이
- 처음에 {key: value} 로 잡아두고 key 에 맞는 value로 replace 하려고 했으나 뭔가 코드가 복잡해지는 것 같아 몇가지 풀이를 찾아보았다.
- 다른 사람들의 풀이를 보니까, 이 문제의 특성 중 인덱스와 영단어가 일치하는 것을 활용하였다.
1) 문자열이 들어오는 s를 변수에 담아 복사해두고, 영단어 배열만큼 반복문을 돌며 영단어와 일치할 경우 split하여 return할 변수에 담는다.
2) 그러면 여기서 return할 변수(answer)에 숫자들만 담기게 되고, split한 상태로 담기면 배열로 담기니 이 부분을 join을 사용해서 문자열로 바꾼다.
3) 여기서 끝이 아닌고 문제에서 요구하는 바와 같이 숫자 타입으로 바꿔준다.
+ 정규식을 이용해서 푸는 방법도 있다.
123s = s.replace(/zero/g, 0);s = s.replace(/one/g, 1);s = s.replace(/two/g, 2);cs 제출코드 및 채점결과
1234567891011function solution(s) {let answer = slet numbers = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine']for(let i = 0; i < numbers.length; i += 1) {let arr = answer.split(numbers[i])console.log(arr)answer = arr.join(i)}return Number(answer)}cs 'Algorithm' 카테고리의 다른 글
[백준 알고리즘] C++ | 10757번 큰 수 A+B (0) 2022.08.19 [프로그래머스] JavaScript | 올바른 괄호 (스택) (0) 2022.08.17 [백준 알고리즘] C++ | 0912번 괄호 더하기 (0) 2022.07.06 [백준 알고리즘] C++ | 2669번 직사각형 네개의 합집합의 면적 구하기 (0) 2022.06.15 [백준] 2231번: 분해합(브루트포스) - Python (0) 2022.03.07