3일차 → 문자열 다루기 기본(parseInt())
본문 바로가기
항해 중/2주차 알고리즘(프로그래머스)

3일차 → 문자열 다루기 기본(parseInt())

by 은돌1113 2021. 11. 10.

문제설명

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성 되어 있는 지 확인 해주는 함수

예를 들어 s가 a234이면 false를 리턴하고 1234이면 true를 리턴한다.

 

제한사항

- s는 길이 1 이상, 길이 8 이하인 문자열이다.

 

내가 푼 문제 풀이

function solution(s) {

  let answer = true

  for(let i=0; i<s.length; i++){
    if(isNaN(s[i])==true){
      answer = false
    }
  }

  return answer
}

첫 시도로 풀었던 코드인데

테스트 케이스 5,6번에서 실패가 떴다

문자열 s의 길이가 4 또는 6인지 확인하는 구문을 넣지 않아서 오류가 난 것이라고 한다

 

2차 시도에서는 parseInt를 사용해서 비교를 했는 데 이 또한 실패가 떴다.

function solution(s) {

  let answer = true

  if(s.length == 4 || s.length == 6){
    for(let i=0; i<s.length; i++){
      if(s[i] != parseInt(s[i])){
      // s[i] == parseInt(s[i])의 결과값이 true 또는 false로 반환됨
        answer = false
      }
    }
  }

  return answer
}

결국 모르겠어서 다른 분들의 풀이를 보았다.

 

다른 사람이 푼 문제 풀이

function solution(s) {
    return (s.length === 4 || s.length === 6) && s == parseInt(s)
}

일단 이 분은 s.length가 4 혹은 6인 숫자로만 구성 되어 있다는 조건 + s를 parseInt()를 사용하여 같은 지 비교하고 결과를 return 하셨다. 간단하게 잘 짜신 것 같다.

isNaN()을 사용하면 반환값이 true이거나 false이기 때문에 비교 할 수 없다. 

 

https://habitual-history.tistory.com/3#recentComments

 

[프로그래머스] 문자열 다루기 기본 | javascript

문제설명 문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한사항 s

habitual-history.tistory.com

 

https://programmers.co.kr/learn/courses/30/lessons/12918

 

코딩테스트 연습 - 문자열 다루기 기본

문자열 s의 길이가 4 혹은 6이고, 숫자로만 구성돼있는지 확인해주는 함수, solution을 완성하세요. 예를 들어 s가 "a234"이면 False를 리턴하고 "1234"라면 True를 리턴하면 됩니다. 제한 사항 s는 길이 1

programmers.co.kr

 

댓글