https://programmers.co.kr/learn/courses/30/lessons/81301
변경점
금일부터 알고리즘 문제풀이 (공부)중 알아두면 좋은 방식 , 참고할만한 사용법을 중심으로 차후에 다시 활용할 수 있는 글을 작성하고자 한다
코드
function solution(s) {
let numbers = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"];
var answer = s;
for(let i=0; i< numbers.length; i++) {
let arr = answer.split(numbers[i]);
answer = arr.join(i);
}
return Number(answer);
}
console.log(solution("one4seveneight")); // 1478
console.log(solution("23four5six7")); // 234567
console.log(solution("2three45sixseven")); // 234567
console.log(solution("123")); // 123
사용한 메소드 & 해설
zero ( numbers[0] ) ~ nine ( numbers[9] ) 까지의 배열을 셋팅
zero ~ nine 의 string을 입력받은 값에서 탐색
해당 단어가 발견되면 단어를 기준으로 split을 사용하여 좌 우로 나눈다
이후 join으로 좌 우의 단어를 합치면서 사이에 해당 숫자를 집어넣는다.
- split
string.split(separator, limit)
문자열을 separator를 기준으로 잘라서 배열로 만들어서 리턴합니다.
이번 문제에서는 numbers에 있는 단어를 기준으로 사용합니다.
"one4seveneight".split("seven"); // ["one4","eight"]
- join
arr.join([separator])
배열을 문자열로 합성해줍니다. 합성해 줄때 separator를 구분할 문자로 넣을 수 있습니다.
["one4","neight"].join(7) // "one47eight"
즉 위의 두가지를 통해 seven -> 7로 바꾸는게 가능하며 이것을 0~9까지 실행후
최종값을 Number로 숫자열로 변환 리턴한다.
'IT 학습 > Algorithums' 카테고리의 다른 글
[엘리스 SW 3기] 코테전 입,출력 방식 정리 (0) | 2022.08.21 |
---|---|
정규 표현식 활용하기 (데이터 가공) (0) | 2022.06.03 |
프로그래머스 - 신규 아이디 추천 [정규 표현식 , replace] (0) | 2022.04.17 |
프로그래머스 - 기능개발 [스택/큐_lv2] (0) | 2022.04.10 |
프로그래머스 - 위장 [해시_lv2] (0) | 2022.04.10 |