-
[프로그래머스] - [3차] n진수 게임알고리즘/Level 2 2023. 3. 16. 17:18
https://school.programmers.co.kr/learn/courses/30/lessons/17687
[프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr](https://school.programmers.co.kr/learn/courses/30/lessons/17687)
접근 방법
해당 문제는 특정 조건까지 계속해서 반복하며 주어진 조건에 맞을 때만 문자열에 추가해주면 되는 문제이다.
- 0부터 증가하는 수를 n진수로 바꿔준다.
- 바꿔준 수의 길이가 2글자 이상이라면 내 순서에 한글자만 문자열에 추가해주고 나머지 숫자는 나머지 사람들이 처리한다.
이 두가지만 생각하고 문제를 한단계씩 풀면 비교적 쉽게 풀 수 있다.
풀이
function solution(n, t, m, p) { let answer = ""; let num = 0; let count = 0; while (true) { let changeNum = num.toString(n); for (let i = 0; i < changeNum.length; i++) { if (count % m === p - 1) { answer += changeNum[i].toUpperCase(); if (answer.length === t) return answer; } count++; } num++; } }
().toString(n)
을 활용하여 수를 n진법으로 바꾼 후에 해당 문자의 길이만큼 for문을 돌기 시작하면 된다.
그리고 내 순서에 맞을 때만 해당 값을 문자열에 추가해주면 된다.count
는 현재 어떤 사람의 차례인지를 나타내는 변수이다. 이는 0부터 시작하여 계속 증가하는데 이 값을 총 인원으로 나눈 나머지에 따라 현재 순서를 알 수 있다.'알고리즘 > Level 2' 카테고리의 다른 글
[프로그래머스] - 다리를 지나는 트럭 (0) 2023.03.28 [프로그래머스] - 게임 맵 최단거리 (0) 2023.03.03 [프로그래머스] - 올바른 괄호 (0) 2023.02.09 [프로그래머스]-호텔 대실 (0) 2023.02.03 캐시 (0) 2022.12.09