[TIL - 프로그래머스 문제풀이 1]

..·2023년 4월 7일
0

TIL

목록 보기
5/22
post-thumbnail

프로그래머스 문제를 풀어봤다.
예전에 레벨 0 몇 개 풀어봤을 때 그것조차도 어려워서 엄청 오래걸렸는데
레벨 1이 혼자의 힘으로 풀리는 걸 보면서 공부에 대한 보람을 느끼는 중이다.
근데 물론 다 풀리는 건 아니고 진짜 극소수만 수월하고 나머지는 또 오래걸리긴 하지만
그래도 정답에 근접한 코드를 직접 짜는 과정이 굉장히 뿌듯하다.

오늘 한거랑 새로 배운거 그리고 실습까지 해보고 블로그 업데이트 하기


문제

  • 문자열 s를 숫자로 변환한 결과를 반환하는 함수, solution을 완성하세요.

시도

  • Number()를 쓰면 되지 않을까 생각했다.

  • 제한 조건에서 s 는 부호와 숫자로만 이루어져 있고 잘못된 값이 입력되는 경우는 없다고 명시되어 있어서 Number()을 써도 제대로 실행될 것이다.

  • 하지만 만약 제한 조건에 그런 내용이 없다면 숫자 이외의 문자가 포함되었거나 공백이 포함되었을 경우, NaN을 반환한다.

  • 그리고 Number()을 썼을 때는 문자열을 부동소수점 수로 변환하기 때문에 정수로 변환할 필요가 있을 때는 소수점 이하를 버리는 작업이 따로 필요하다.

  • 그렇기 때문에 부호를 포함한 문자열을 숫자로 변환할 때는 parseInt()나 parseFloat() 함수를 사용하는 것이 더 안전하다.



해결

function solution(s) {
    var answer = 0;
    
answer = parseInt(s)
    
    return answer;
}
  • 아니면 문자열과 덧셈을 제외한 숫자연산자가 만나면
    타입이 숫자로 변하는 것을 사용해서도 풀 수 있다.
function solution(s) {
    var answer = 0;
    
answer = s / 1
    
    return answer;
}

하지만 가독성이 떨어지고 유지보수에도 좋지 않을 듯하다.



습득

parseInt()

parseInt() 함수는 문자열을 정수로 변환하는 함수로, 두 번째 인자로 진법(base)을 지정할 수 있다. 진법을 지정하면 해당 문자열의 진법을 10진법으로 변환해서 반환한다.

includes()

includes() 메소드는 배열이나 문자열이 특정 요소나 문자열을 포함하고 있는지 확인하는 데 사용된다. 메소드 호출 시 찾고자 하는 요소나 문자열을 인자로 전달하면, 해당 요소나 문자열이 배열이나 문자열에 포함되어 있으면 true를 반환하고, 그렇지 않으면 false를 반환한다.



0개의 댓글