프로그래머스 Lv.1 숫자 문자열과 영단어(2021 카카오 채용연계형 인턴십)
문제
제한사항과 입출력
나의 코드
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | function solution(s) { let result = 0; s = s.replace(/zero/gi, '0'); s = s.replace(/one/gi, '1'); s = s.replace(/two/gi, '2'); s = s.replace(/three/gi, '3'); s = s.replace(/four/gi, '4'); s = s.replace(/five/gi, '5'); s = s.replace(/six/gi, '6'); s = s.replace(/seven/gi, '7'); s = s.replace(/eight/gi, '8'); s = s.replace(/nine/gi, '9'); result = parseInt(s); return result; } | cs |
처음 문제를 보고 문자열
s
에서 특정 문자열을 찾아서 내가 원하는 문자열로 바꾸면 된다고 생각했다.
그래서.replace()
메소드를 사용하여 각 숫자에 대한 문자들을 숫자로 바꾸어 주었다.
그 후에parseInt
로 문자열s
를 정수로 바꾸어주고 값을return
하였다.결과 : 성공
다른 사람의 풀이
1 2 3 4 5 6 7 8 9 10 11 12 | function solution(s) { let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"]; let answer = s; for(let i=0; i< numbers.length; i++) { let arr = answer.split(numbers[i]); answer = arr.join(i); } return Number(answer); } | cs |
가장 많은 좋아요를 받은 다른 사람들의 풀이이다.
numbers
를 순회하면서.split()
을 사용하여 ' i '번째 문자열을 자르고,.join()
을 사용하여 숫자를 채워 주는 코드였다.