🔑 Proverbs 16:9
💡 String.fromCharCode 함수
📃 자바스크립트를 배우다가 마주친 char 관련 문제인데, 알고 있어야할 것 같아서 정리합니다
💻CODE
function solution(age) {
return String(age).split('')
.map(i => String.fromCharCode(97 + Number(i)))
.join("");
}
⬆️ 이 문제의 핵심은 String.fromCharCode 메서드라고 생각하고, 문자열 값을 Char로 변환시키는 메서드 입니다. 괄호안에 97을 추가적으로 더해주는 이유는 97이 ASCII코드로 'a'이기 때문입니다.
- 대문자 'A' 의 ASCII 코드 : 65
- 소문자 'a' 의 ASCII 코드 : 97
💡 sort()
📃 난 이 문제를 보자마자, emergency의 값을 객체의 키로 두고, value를 인덱스로 설정하는 방법을 택했지만, 지금보니 내 방법은 복잡도가 너무 높은 것 같네요. 문제를 많이 접해보며 유연하게 사고하는 법을 익혀야 할 것 같습니다
💻CODE
function solution(emergency) {
// 내림차순 정렬된 배열 생성
const sorted = [...emergency].sort((a, b) => b - a);
// 원본 배열의 각 값에 대해 순위를 계산
return emergency.map(value => sorted.indexOf(value) + 1);
}
⬆️ 먼저 emergency 배열을 전개 연산자(...)를 사용하여 sorted라는 새로운 배열로 복사한 후, sorted 배열을 내림차순으로 정렬합니다. 이렇게 하면 응급도가 높은 값이 앞에 오게 됩니다
⬆️ emergency 배열의 각 요소에 대해 map 메서드를 사용하여 해당 값이 sorted 배열에서 몇 번째 위치에 있는지를 구합니다. indexOf 메서드를 통해 각 값의 인덱스를 찾고, 여기에 + 1을 더하여 1부터 시작하는 순위를 계산합니다.
💡 개미 군단 Math.floor()
📃 주어진 hp를 최소의 병력으로 나누는 문제입니다
💻 MY CODE
function solution(hp) {
let ants = [{general: 5}, {soldier: 3}, {normal: 1}]
let members = 0;
for(let i=0; i<ants.length; i++){
let ant = ants[i];
let value = Object.values(ant)[0];
members += Math.floor(hp / value);
hp %= value
if(hp === 0) return members;
}
}
⬆️ 저는 문제를 객체로 접근했는데, 개미의 종류와 공격력을 각각 Key, Value로 설정해서 접근했는데, 제가 자체적으로 코드 난이도를 올렸네요ㅎ
💻 GPT CODE
function solution(hp) {
return Math.floor(hp / 5) + Math.floor((hp % 5)/3) + (hp%5) % 3
}