반응형
문제 출처
https://school.programmers.co.kr/learn/courses/30/lessons/17687
정답 풀이 힌트
- 숫자.toString(진법) 을 이용해 숫자를 원하는 진법으로 바꾼다.
- toUpperCase() 함수를 통해 대문자로 바꿔준다.
- substring(0,2)를 활용해서 0번째 idx , 1번째 idx를 구해본다. (예시든거임)
정답 풀이 코드
function solution(n, t, m, p) {
let str = ''; //0부터 ~ 정한 수까지 특정 진법으로 고친걸 str에 넣는다.
for(let i=0; str.length < m * t; i++){ //t: 한 사람이 몇개 숫자 말해야 하나 , m: 사람수
str += i.toString(n).toUpperCase();
}
let answer = ''; //p번째 사람이 말하는것만 넣자.
let cnt = 0;
while(answer.length < t){
const s = str.substring(cnt, cnt+m) //사람 수 많큼 자른다 ex) 3명이면 idx: 0,1,2
answer += s[p-1]; //p = 두번째 차례면 idx상으로는 s[p-1]이 된다.
cnt += m; //idx = 2까지 잘랐으니까, idx = 3부터 다시 자르려면, cnt에 사람 수 많큼 더하는 것.
}
return answer;
}
Only 풀이 코드
function solution(n, t, m, p) {
let str = '';
for(let i=0; str.length < m * t; i++){
str += i.toString(n).toUpperCase();
}
let answer = '';
let cnt = 0;
while(answer.length < t){
const s = str.substring(cnt, cnt+m)
answer += s[p-1];
cnt += m;
}
return answer;
}
나의 틀린 풀이 코드
function solution(n, t, m, p) {
//몇진법?
//미리 구할 숫자의 개수?
//게임에 참가하는 인원
//튜브의 순서 p
//10 A
//11 B
//12 C
//13 D
//14 E
//15 F
//2진법 4개 구하고, 2명이 하고, 순서는 첫번째
//0부터 몇진법에 따라 배열에 PUSH 하고
//'' 또 split 한다.
//몇번째이냐에 따라 그 해당 숫자만 말하면 되고
//그걸 return 하면 됨
let answer = [];
let num = [];
for(let i=0; i<1000; i++){
let temp = i.toString(n)
if(temp.length >=2){
let spl = temp.split('');
for(let j=0; j<spl.length; j++){
num.push(spl[j])
}
}else{
num.push(temp.toUpperCase());
}
}
console.log(num)
//num을 2명씩 첫번째 순서는 ?
//[0,1,2,3,4,5,6,7,8,9]
// 0, 2, 4, 6, 8,
//num을 3명씩 두번째 순서는?
//[0,1,2,3,4,5,6,7,8,9]
//1,4,7
//순서가 1번째면 0부터 + 몇명씩 ? 2명씩이면 +2 index
//순서가 2번째면 1부터 3명씩이면? +3 idx
for(let i=p-1; i<num.length; i+=m){
answer.push(num[i])
if(answer.length === t) break;
}
return answer.join('');
}
반응형
'알고리즘 문제 풀기' 카테고리의 다른 글
프로그래머스: [3차]파일명 정렬 - javascript(정규식 끝판왕) (0) | 2024.04.11 |
---|---|
프로그래머스: 오픈채팅방 - javascript(replace, Map, switch) (0) | 2024.04.09 |
프로그래머스: 키패드 누르기 - javasript(구현, Math.abs, 숫자 규칙) (0) | 2024.04.06 |
프로그래머스 : [1차] 비밀지도 - javascript(toString(), padStart()) (0) | 2024.04.05 |
이진수 함수 dfs로 구현하기 (0) | 2024.04.05 |