티스토리 뷰

📌문제 설명

 

https://school.programmers.co.kr/learn/courses/30/lessons/120834

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

📌나의 풀이

a부터 z까지 순서대로 들어간 문자열이 필요하다고 생각해서 유니코드를 이용해 str변수를 새로 만들었다.

매개변수로 들어오는 age의 값을 각각 나눠서 해당하는 정수를 a~z까지의 문자열(str)의 인덱스로 사용했다.

나눈 age값은 문자 배열 변수(arr)에 저장하여 배열 인덱스를 활용했다.

function solution(age) {
    var answer = '';

    let str = '';
    let arr = [];

    let numToStr = age.toString(); //정수를 문자열로 변경
    arr = numToStr.split(''); //문자열을 잘라 배열에 저장 : ["2","3"]

    //a~z 유니코드 : 97~122
    for(let i=97; i<=122; i++){
        str += String.fromCharCode(i); 
        //str = 'abc...xyz';
    }

    for(let i=0; i<arr.length; i++){
       //배열의 문자열에 해당하는 번호의 알파벳 찾기
       let num = Number(arr[i]); 
       answer += str[num];

    }

    return answer;
}​

 

 

📌다른 풀이 방법

  1. 문자열 자체도 인덱스[] 접근 가능
function solution(age) {
  return age
    .toString()
    .split("")
    .map((v) => "abcdefghij"[v])
    .join("");
}

문자열 자체도 인덱스가 있으니 바로 [v] 가 가능하다.

52 -> "52" -> ["5","2"]. -> ["abcdefghij"[5], "abcdefghij"[2] ] -> "fc"

 

 

 

복잡하게 생각했는지 코드가 많이 길어졌다. 다른 사람 풀이를 보니 짧게는 평균 3~4줄 사이에서 풀 수 있는 문제였다.

나는 알파벳 문자열을 만들려고 사용했지만 for문을 두 번이나 사용할 필요는 없는 것 같다!

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/09   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함