Bleeding edge

[프로그래머스] [3차] n진수 게임 - 자바스크립트 본문

코딩테스트 공부

[프로그래머스] [3차] n진수 게임 - 자바스크립트

codevil 2022. 5. 10. 23:40

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

 

코딩테스트 연습 - [3차] n진수 게임

N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0

programmers.co.kr

풀이시간 : 16분

아이디어 : 주어진 조건의 숫자가 많기 때문에, MAX치를 계산하고 그에 맞는 값을 구해도 된다.

플로우 :

1.  구해야하는 수와, 인원수를 곱하면, 튜브가 이야기해야하는 숫자보다 크기에 그 숫자를 구한다.

2. 튜브의 순서를 구한다 튜브의 순서는 p-1이다 (array는 순서가 0부터 시작하기에)

3. for문으로, 1에서 구한숫자만큼을, String에 계속 붙인다

(만일 2진법을 3까지붙인다면, 011011)

4. for문으로, 만일 튜브의 숫자가 나온다면, answer에 해당하는 글자를 붙인다.

주의사항 : 알파벳은 대문자로 붙여야하니 toUpperCase()를 붙인다.

로 풀면 쉽게 풀리는 문제이다.

function solution(n, t, m, p) {
    const maxSize = t*m;
    const ORDER = p-1
    let full = ""
    let answer = ""
    for(let i=0;i<maxSize;i++){
        full = full+i.toString(n)
    }
    for(let i=0;full.length;i++){
        if(answer.length===t){
        break;
        }
        if(i%m===ORDER){
            answer = answer+full[i].toUpperCase()
        }
    }
    return answer
}