-
[프로그래머스] n진수 게임 (2018 KAKAO BLIND RECRUITMENT)ALGORITHM/PROGRAMMERS 2021. 2. 11. 18:45
programmers.co.kr/learn/courses/30/lessons/17687
2021-02-11
12345678910111213141516171819202122232425262728293031323334353637383940414243import java.util.ArrayList;public class Solution17687 {public static ArrayList<String> list;public static String nu[] = {"A", "B", "C", "D", "E", "F"};public static void make(int jinbub, int done) {list.add("0");loop:for (int i = 1; i < done; i++) {int num = i;String tmp = "";while (num > 0) {int re = num % jinbub;if(re >= 10) tmp = nu[re-10] + tmp;else tmp = re + tmp;num /= jinbub;}for (int k = 0; k < tmp.length(); k++) {list.add(String.valueOf(tmp.charAt(k)));if (list.size() >= done) break loop;}}}public static String solution(int n, int t, int m, int p) {String answer = "";list = new ArrayList<>();make(n, (t - 1) * m + p);for (int i = p - 1; i < list.size(); i += m) {answer += list.get(i);}return answer;}public static void main(String[] args) {int n = 8; // 진법int t = 100; // 미리 구할 숫자의 갯수int m = 20; // 게임에 참가하는 인원int p = 3; // 튜브의 순서System.out.println(solution(n, t, m, p));}}cs #문제풀이
n진수를 얼마만큼 구하는지가 문제의 핵심이었던 것 같다. (t-1)*m+p만큼 구했지만, 어차피 구할 때 for문에서 i+=m만큼씩 체크할 거라서, t*m으로 해도된다.
'ALGORITHM > PROGRAMMERS' 카테고리의 다른 글
[프로그래머스] 순위 검색 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.02.12 [프로그래머스] 기둥과 보 설치 (2020 KAKAO BLIND RECRUITMENT) (0) 2021.02.11 [프로그래머스] 방금그곡 (2018 KAKAO BLIND RECRUITMENT) (0) 2021.02.11 [프로그래머스] 파일명 정렬 (2018 KAKAO BLIND RECRUITMENT) (0) 2021.02.09 [프로그래머스] 메뉴 리뉴얼 (2021 KAKAO BLIND RECRUITMENT) (0) 2021.02.04