일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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
- 윈도우10캡쳐 #윈도우10캡처 #윈도우10스크린샷 #캡쳐하기 #캡처하기 #스크린샷찍기 #캡쳐지연 #스크린샷지연
- 요일구하는공식
- 동영상다운 #영상다운 #크롬웹스토어 #드래그되지않는 #클릭되지않는 #동영상
- 메뉴
- 숫자게임만들기
- 카카오톡알림설정 #카톡알림설정
- hover효과
- GIT
- darkmode
- 요일구하기
- 네트워크 #5G안터질때 #4G로바꾸는법 #5G를4G로 #5G를LTE로 #갤럭시5G변경
- 프로그래머스
- ThemeProvider
- 문자열다루기
- list추가하기
- 리액트
- 음악검색기능 #음악찾기기능 #음악찾기 #음악검색 #네이버음악검색 #다음음악검색 #멜론음악검색
- 좌우슬라이드
- React
- 오류
- 자바스크립트
- array #object #lodash #javascript
- 자바스크립트 #메뉴만들기
- 가장작은자연수
- 티스토리 #폰트변경 #꾸미기
- fade-in
- 파비콘 #파비콘만들기 #포토샵파비콘
- todolist
- 슬라이드다운
- fadeint
Archives
- Today
- Total
잿꽃's posting Garden
프로그래머스에서 코딩테스트 연습1 - 숫자 문자열과 영단어 본문
숫자와 영문자가 섞인 문자를 숫자로 변환하기
ex) one4seveneight -> 1478
문자와 숫자가 섞인 문자열이 입력되면 숫자열로 변환되어서 나타나야 한다.
테스트를 통과했는데 채점하니까 5, 7, 8에서 문제가 생겼다.
왜 안 되는거지 한참 헤맸다. 알고 보니 replace는 하나만 바꿔줘서 twotwo 이런 식으로 있으면 22가 아닌 2two로 되기 때문이었다.
replaceAll이 사용이 전혀 안되었는데 정확한 원인은 알 수 없지만 node version이 v10.16.0은 replaceAll을 사용할 수 없다는데 이 사이트가 그런 건가 싶었다.
그래서 while문에서 s의 내용이 문자가 아닐 때까지 반복실행하는 것으로 수정했다.
function solution(s) {
const num = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
while(isNaN(s)){
for(i =0; i < num.length; i++){
s = s.replace(num[i],i);
}
}
return Number(s);
}
아무래도 동일 숫자가 있을 때 while문이 여러번 반복되어야 하다 보니 7, 8번 시간이 늘어난 거 같다.
결론
1. replaceAll로 동일한 부분 모두 바꾸기
2. while문으로 s가 숫자가 될 때까지(isNaN활용) 반복하여 replace로 바꾸기
728x90
'WEB > 코딩테스트 연습' 카테고리의 다른 글
프로그래머스에서 코딩테스트 연습6 - 2016년 요일 구하기 (0) | 2022.05.17 |
---|---|
프로그래머스에서 코딩테스트 연습5, 6 - 짝수와 홀수, 수박수박수 (0) | 2022.05.16 |
프로그래머스에서 코딩테스트 연습4 - 두 개 뽑아서 더하기 (0) | 2022.05.15 |
프로그래머스에서 코딩테스트 연습3 - 나머지가 1이 되는 수 찾기 (0) | 2022.05.14 |
프로그래머스에서 코딩테스트 연습2 - k번째 수 (0) | 2022.05.13 |
Comments