728x90
https://school.programmers.co.kr/learn/courses/30/lessons/70129?language=javascript
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
반복문은 생각 못하고 처음부터 재귀로 풀었던 문제
처음에 undefined 가 나서 왜그런가 했더니 if문에 return 을 제대로 주지않았다..
재귀에서 return을 안하고 뭘하겠다는건지~
자바스크립트에서는 내장함수로
10진법을 2진법으로 바꾸는 toString()이라는 멋진 함수를 제공한다.
function removeZero(string, count, zeroCount){
let str = '';
let nums = string.split('')
for(const i of nums){
if(i !== '0'){
str +=i
}else{
zeroCount++
}
}
if(string === '1'){
return [ count, zeroCount ]
}
else{
count++;
return removeZero(str.length.toString(2), count,zeroCount )
}
}
function solution(s) {
var answer = [];
return removeZero(s, 0, 0)
}
사실 문제자체는 그리 어렵진 않았지만 조금 더 나은 방법이 뭐가 있을까 하다 생각했던 부분들이 오래걸렸던 것 같다.
정규표현식을 사용한 경우도 있었고 반복문을 사용한 경우도 있었지만
아무래도 조금이라도 가독성이 나은 건 내가 짠 코드라 생각해서 크게 더 수정하진 않았다.
짧은 코드도 물론 멋지지만 요즘은 최대한 가독성이 좋은 코드를 짜려고 노력중이다.
728x90
반응형
'Coding Test' 카테고리의 다른 글
백준 11047 - 동전 0 (Python) (0) | 2022.11.25 |
---|---|
백준 11399 - ATM( Python ) (0) | 2022.11.23 |
백준 2839 - 설탕 배달 ( Python ) (0) | 2022.11.17 |
프로그래머스 최솟값 만들기 - javascript (0) | 2022.09.24 |
JadenCase 문자열 만들기 - javascript (0) | 2022.09.20 |