Algorithm/programmers 43

2개 이하로 다른 비트 ( Level 2, JavaScript, 월간 코드 챌린지 시즌2 )

2개 이하로 다른 비트 ( Level 2 ) Programmers 월간 코드 챌린지 시즌2 ( JavaScript ) 문제 링크 나의 풀이 function solution(numbers) { return numbers.map(el => { if ( el % 2 ) { let two = el.toString(2) const idx = two.lastIndexOf('0') two = idx === -1 ? '10' + two.slice(1) : two.slice(0, idx) + '10' + two.slice(idx + 2) return parseInt(two, 2) } else { return el + 1 } }) } 짝수인 경우 이진수 마지막 자리인 0을 1로 바꾸는 과정 > 즉 +1을 해준다. 홀수인 ..

이진 변환 반복하기 ( Level 2, JavaScript, 월간 코드 챌린지 시즌1)

이진 변환 반복하기 ( Level 2 ) Programmers 월간 코드 챌린지 시즌1 ( JavaScript ) 문제 링크 나의 풀이 function solution(s) { let count = 0, countZero = 0; while ( s !== "1" ) { if ( s.split('').every(a => a === '1') ) { s = (s.length).toString(2) } else { const len = s.split('').filter(a => a === '1').length countZero += s.length - len s = len.toString(2) } count++ } return [count, countZero] } 변환 횟수 count, 제거된 0의 개수를 담을..

방문 길이 ( Level 2, JavaScript, Summer/Winter Coding )

방문 길이 ( Level 2 ) Summer/Winter Coding ~2018 ( JavaScript ) 문제 링크 나의 풀이 function solution(dirs) { const arr = [] let cur = [0,0] for ( let i = 0; i = -4 ) { cur[0] -= 1 arr.push([cur[0] + 0.5, cur[1]]) } break; case "R": if ( cur[0] ''+el))].length } [0, 0] -> [0, 1] 과 [1, 0] -> [0, 0]이 동일한 경로로 이동하기 때문에 이를 구분짓기 위해서 움직이는쪽의 좌표를 평균값..