개발자 '쑥말고인절미'
[프로그래머스] JS 숫자 문자열과 영단어 본문
문제


내 답안
function solution(s) {
var answer = '';
let alphabet = ['zero', 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine'];
let findword = '';
for(let i=0; i<s.length; i++) {
if(s[i].charCodeAt() >= 48 && s[i].charCodeAt() <= 57) {
answer += s[i];
} else {
findword += s[i];
if(alphabet.indexOf(findword) > -1) {
answer += (alphabet.indexOf(findword));
findword = '';
}
}
}
return Number(answer);
}
메모
테스트10번을 계속 통과를 못해서 왜인가 싶었더니 100을 입력했을 때 아웃풋이 1로 나오고 있었다. 그 이유는 아스키코드를 분별하는 if문에서 숫자 0의 아스키 코드인 48이 아닌 숫자 1을 의미하는 49부터 값을 확인하고 있어서 숫자 0을 파악하지 못하고 있었던 것이다. 그 부분을 고쳐줬다니 잘 돌아갔다. 한시간 넘게 푼 거 같은데 흠... 친구 소스를 보고나니 JS 메소드들을 활용하지 못하고, 문자열 관련 함수를 생각을 안하는 것 같다. 이번 주말에는 map이나 match 등과 같은 JS의 기본 메소들이라고 불릴만한 것들을 공부해야겠다. 문자열 메소드도!!
아래가 친구 소스!
function solution(s) {
var compare = ['zero','one','two','three','four','five','six','seven','eight','nine'];
var b = 0;
var c = 0;
compare.map((x,i) => {
if(s.match(x) == x ){
b = s.replaceAll(x,i);
c=b;
s=b;
}else{
b=s;
}
})
return parseInt(b);
}
참고링크
https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=diceworld&logNo=220175224345
자바스크립트 아스키코드 변환하기 (charCodeAt / fromCharCode)
- charCodeAt / fromCharCode 란? charCodeAt 은 문자열중 하나를 선택하여 아스키코드 번호로 변환...
blog.naver.com
배열에 JavaScript의 값이 포함되어 있는지 확인
이 튜토리얼에서는 JavaScript에서 배열에 값이 포함되어 있는지 확인하는 방법을 소개합니다.
www.delftstack.com
'STUDY > 코딩테스트' 카테고리의 다른 글
| [프로그래머스] JS 2016년 (0) | 2022.09.28 |
|---|---|
| [프로그래머스] JS 두 개 뽑아서 더하기 (0) | 2022.09.28 |
| [프로그래머스] JS 최소직사각형 (1) | 2022.09.23 |
| [프로그래머스] JS [1차] 비밀지도 (0) | 2022.09.21 |
| [프로그래머스] JS 예산 (1) | 2022.09.19 |