코딩테스트 공부
[프로그래머스] [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
}