본문 바로가기

프로그래머스/구현

[문자열] 프로그래머스 'n진수 게임' - js

반응형

1. 문제

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

2. 코드

이 문제는 차분하게 for문의 조건을 생각해보는 것이 관건이였던 문제같다. 습관적으로 let i=0부터 적고 나니 머리가 복잡해졌지만, 돌이켜 생각해보니 내 순서와 참여인원을 알고 있으면 쉽게 for문의 조건을 만들어 줄 수 있었다. 차분하게!

function solution(n, t, m, p) {
    let answer = [];
    let str = "";
    let i = 0;
    
    // 내가 필요한 숫자가 저장될 때까지 n진수로 변환
    while(answer.length < t*m){
    	// 숫자 n진수로 변환 후 한 글자씩 떼어줌
        answer.push(...(i.toString(n).split("")));
        i++;
    }
    
    // 내 순서부터 시작해서 참여하는 사람 만큼 건너뛰며 내 순서에 맞는 요소 저장
    for(let i=p-1;i<answer.length;i+=m){
        if(str.length < t){
            if(answer[i] < 10 || answer[i] > 15) str += answer[i];
            else str += answer[i].toUpperCase();
        }
        else break;
    }
    
    return str;
}
반응형