[프로그래머스 level2] n진수 게임_2018 카카오 3차

김예지·2021년 10월 20일
0

문제

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


문제 풀이

코드

function solution(n, t, m, p) {
    let answer='';
    let tmp='';
    let num=0;
    
    while(tmp.length<t*m){
        tmp+=num.toString(n);
        num++;
    }
    tmp=tmp.toUpperCase();
    
    for(let j=p-1; j<t*m; j+=m){
        answer+=tmp[j];
    }
    return answer;
}

tm은 게임수이다. 만약 내가 3번말하고싶은데 사람이 4명이라면, 게임수는 34가 되어야한다. 12번에 게임 속에서 a가 3번, b가 3번, c가 3번이기 때문이다.

첫번째 while문에서 tm길이 만큼 n진수로 변환한 것을 tmp에 저장하고(하지만 테케 1같은 경우는 tmp.length가 tm을 넘는다. 하지만 아래 for문에서 t*m 전까지만 처리하니까 괜찮다.)
두번째 for문에서 출력할 answer배열을 저장한다. for문의 세번째 조건인 j+=m과 같은 형식을 사용할 수 있다는걸 잘 기억해두자!

이론

  • !tmp.length===tm하면 제대로 안됨. !(tmp.length===tm)과 같이 묶어줘야함. 근데 애초에 이런식은 tmp.length!==t*m과 같이 표현하면 됨

문제 풀이

profile
내가 짱이다 😎 매일 조금씩 성장하기🌱

0개의 댓글