Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- React
- DOM
- 국비지원
- 변수 선언
- 패스트캠퍼스
- 나라사랑카드
- 리액트
- 호이스팅
- 바이트디그리
- flex item
- react강의
- 자바스크립트
- Flex Container
- 코딩테스트 lv0
- SVG
- 노드
- 프로그래머스 lv0
- API
- margin-left
- javascript
- 코딩테스트 js
- js
- 내일배움카드
- CSS
- html
- js split
- K디지털기초역량훈련
- 프로그래머스 JS
- udemy
- flex
Archives
- Today
- Total
꺾이지 않는 마음
[프로그래머스] Lv.0 영어가 싫어요 JS 풀이 본문
🧡문제 설명
영어가 싫은 머쓱이는 영어로 표기되어있는 숫자를 수로 바꾸려고 합니다. 문자열 numbers가 매개변수로 주어질 때, numbers를 정수로 바꿔 return 하도록 solution 함수를 완성해 주세요.
💛제한사항
- numbers는 소문자로만 구성되어 있습니다.
- numbers는 "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" 들이 공백 없이 조합되어 있습니다.
- 1 ≤ numbers의 길이 ≤ 50
- "zero"는 numbers의 맨 앞에 올 수 없습니다.
💚입출력 예
numbers | result |
"onetwothreefourfivesixseveneightnine" | 123456789 |
"onefourzerosixseven" | 14067 |
💙입출력 예 설명
입출력 예 #1
- "onetwothreefourfivesixseveneightnine"를 숫자로 바꾼 123456789를 return합니다.
입출력 예 #1
- "onefourzerosixseven"를 숫자로 바꾼 14067를 return합니다.
✨나의 풀이
💜 split, join 메서드 활용
function solution(numbers) { let num = ["zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"] for (let i=0; i<num.length; i++) { numbers = numbers.split(num[i]).join(i); } return Number(numbers); }
음.. 계속 고민하다가 모르겠어서 구글링을 좀 했다.
어떤 기술블로그에서 split 과 join 메서드를 활용하는 것을 보고 아이디어를 얻어 풀었다.
split 함수의 구분자를 활용하여 특정 문자를 없애고, join 함수로 결합해서 원하는 문자를 그 자리에 집어넣는 방식이다.
문자열을 다룰 때 split 함수는 거의 매번 나오는 거 같다.
근데 내가 아직 split 메서드를 활용하는 게 익숙치가 않아서 힘들다 ㅠㅠ 그래도 모법 풀이법을 계속 익숙해지자!
😮다른 풀이
function solution(numbers) { const obj = { zero: 0, one: 1, two: 2, three: 3, four: 4, five: 5, six: 6, seven: 7, eight: 8, nine: 9 }; const num = numbers.replace(/zero|one|two|three|four|five|six|seven|eight|nine/g, (v) => { return obj[v]; }); return Number(num); }
정규표현식을 활용한 풀이법이다.
정규표현식은 살짝 배우기만 했지 실제 코테에서 활용해본 적이 없다. 앞으로 정규표현식도 좀 섞어가면서 써봐야겠다.
Comments