[level 1] 시저 암호
·
알고리즘/JavaScript
문제 풀이 코드 function solution(s, n) { let asciiCode = s.split('').map((ch) => { let asciiNum = ch.charCodeAt() + n; if (ch === ' ') return ch; return ch.toUpperCase().charCodeAt() + n > 90 ? String.fromCharCode(asciiNum - 26) : String.fromCharCode(asciiNum); }); return asciiCode.join(''); } 풀이 과정 어려웟다 아스키를 어떻게 사용해야할지 어떤 조건을 맞춰야 할지 한참을 생각했다. 풀이 과정은 다음과 같이 풀었다 1. asciiCode 라는 변수에 Ascii로 변환후, 다음 값을 계산..
[level 1] 3진법 뒤집기
·
알고리즘/JavaScript
문제 풀이 코드 let triadNum = []; function solution(n) { let decimal = 0; setTriad(n); return triadNum .map((num, index) => num * 3 ** index) .reduce((sum, current) => sum + current, 0); } function setTriad(n) { if (n >= 3) { setTriad(n / 3); setTriad(n % 3); } else { triadNum.push(Math.floor(n)); } } 풀이 과정 42서울을 하며 진법변환을 위해 함수를 많이 만들었었다... 2진법, 16진법, 10진법 등등 그 아이디어가 생각나서 별도의 함수를 만들고 해당 함수에서 3진법으로 변환하..
[level 1] 정수 내림차순으로 배치하기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(n) { let sortNum = n .toString() .split('') .sort((a, b) => a - b) .reverse() .join(''); return parseInt(sortNum); } 풀이 과정 함수를 이용하여 풀이 하였다. 각 단계별로 설명하면 다음과 같다. 1. toString 함수를 이용하여 문자열로 형 변환 2. split('') 함수를 이용하여, 각 요소를 나누어 배열 생성 3. sort() 함수를 이용하여, 각 요소를 정렬 4. reverse() 함수를 이용하여, 정렬된 요소를 반전 5. join() 함수를 이용하여, 배열의 요소들을 문자열로 생성 6. parseInt() 함수를 이용하여, 문자열을 정수로 변환하여 반환 ..
[level 1] 정수 제곱근 판별
·
알고리즘/JavaScript
문제 풀이 코드 function solution(n) { let num = Math.sqrt(n); if (num == Math.floor(num)) return (num + 1) ** 2; else return -1; } 풀이 과정 sqrt 함수를 이용하여, 제곱근을 구하고, floor 함수를 이용해 소수점 아래 수를 전부 버리고, 제곱근의 값과 같은지 비교하였다. 이 과정에서 제곱근이 정수인지 판별할 수 있었고, 제곱근이 정수라면 다음수의 제곱근을 반환, 제곱근이 정수가 아니라면 -1 을 반환하게 하였다.
[level 1] 제일 작은 수 제거하기
·
알고리즘/JavaScript
문제 풀이 코드 function solution(arr) { arr.splice(arr.indexOf(Math.min(...arr)), 1); return arr.length == 0 ? [-1] : arr; } 풀이 과정 처음에 sort 를 하여, 0인덱스의 값을 제거했다. 이렇게 하고나서 문제를 다시보니 배열의 순서는 유지 되어야한다 그래서 Math.min 함수를 통해, 최소값이 있는 해당 인덱스를 구하여 , splice 함수를 적용했다, 단, 제거했을때 배열에 남는값이 없다면, ( 배열의 길이가 0 이라면 ) [-1] 을 return 하게 적용했다. 여기서도 Math.min 함수에 처음에 Math.min(arr) 로만 작성했지만, 테스트에서 Fail 되었다.. 그래서 그 이유를 검색해보니 Math...