[Javascript] 코딩 입문 트레이닝 String.fromCharCode, sort(), Math.floor()

2024. 12. 28. 14:18·JavaScript
🔑 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
}

⬆️ Math.floor(hp / 5)는 hp에서 장군개미의 수를 계산합니다

⬆️ (hp % 5) / 3는 나머지 체력을 3으로 나누어 병정개미의 수를 계산합니다.

⬆️ (hp % 5) % 3는 병정개미로 처리할 수 없는 나머지 체력을 일개미로 처리합니다.

📝 SUMMARY


📌 프로그래머스 레벨 0짜리 문제들인데, 아직 한참 멀었네요...ㅜㅜ

📌 어려운 알고리즘 문제를 많이 푸는 것도 중요하지만, 기초 문법부터 하나하나 잡아가면, 나중에 어떤 어려운 코드라도 다가갈 수 있는 길이 다양하게 보이지 않을까 생각합니다

저작자표시 비영리 변경금지 (새창열림)
'JavaScript' 카테고리의 다른 글
  • Axios 라이브러리 쉽게 이해하기 GET, POST, Interceptors
  • 면접에서 자주 출제될 것 같은..? 코딩 테스트 문제 풀이🥕
  • [Javascript] 콜백 함수 Callback function
  • ES6+ 자바스크립트 중요 개념 정리 🔑 - 이벤트(event)
Jelong
Jelong
커스텀 웹: https://jaehong-park.com Github: https://github.com/qkrwoghd04
  • Jelong
    24/7 Developer's Note
    Jelong
  • 전체
    오늘
    어제
    • 분류 전체보기
      • Software Engineering
      • Ubuntu
      • Network
      • JavaScript
      • Web
      • Interaction Design
      • React Native
      • React
      • Algorithm
      • Java
      • Database design
      • IT Trend
      • TroubleShooting
      • AWS
      • Interview
      • LG CNS AM CAMP 1기
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    React
    javascript
    블랙 박스 테스트
    화이트 박스 테스트
    css
    AWS
    이진트리
    BST
    알고리즘
    expo
    Queues
    티스토리챌린지
    자바스크립트
    generic
    오블완
    소프트웨어 공학
    GPT-4
    mininet
    자바
    typescript
    frontend
    알고리즘 분석
    java
    heap
    데이터 구조
    미니넷
    JS
    ChatGPT
    html
    prototyping
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
Jelong
[Javascript] 코딩 입문 트레이닝 String.fromCharCode, sort(), Math.floor()
상단으로

티스토리툴바