1. 문제
https://programmers.co.kr/learn/courses/30/lessons/17687?language=java
코딩테스트 연습 - [3차] n진수 게임
N진수 게임 튜브가 활동하는 코딩 동아리에서는 전통적으로 해오는 게임이 있다. 이 게임은 여러 사람이 둥글게 앉아서 숫자를 하나씩 차례대로 말하는 게임인데, 규칙은 다음과 같다. 숫자를 0
programmers.co.kr
2. 나의 풀이
class Solution {
public String solution(int n, int t, int m, int p) {
String answer = "";
String susja = "0";
for(int i = 1; i <= (t * m); i = i + 1) {
int imsi = i;
String su = "";
while(imsi != 0) {
if(imsi % n < 10) {
su = (imsi % n) + su;
}else {
switch(imsi % n) {
case 10 :
su = "A" + su;
break;
case 11 :
su = "B" + su;
break;
case 12 :
su = "C" + su;
break;
case 13 :
su = "D" + su;
break;
case 14 :
su = "E" + su;
break;
case 15 :
su = "F" + su;
break;
}
}
imsi = imsi / n;
}
susja += su;
//System.out.println("susja : " + susja);
}
String [] arr = susja.split("");
for(int i = 0; i < (t * m); i = i + 1) {
if(p - 1 == i % m) {
answer += arr[i];
}
}
return answer;
}
}
3. 다른 사람 풀이
import java.util.Stack;
class Solution {
static char[] numeralSystem = {'0','1','2','3','4','5','6','7','8','9','A','B','C','D','E','F'};
public String solution(int n, int t, int m, int p) {
String answer = "";
char[] sequence = new char[t * m];
Stack<Character> stack = new Stack<>();
int count = 0;
int number = 0, temp = number;
int limit = m * t;
while(count < limit) {
if(temp < n) {
sequence[count++] = numeralSystem[temp];
while(!stack.isEmpty() && count < limit) {
sequence[count++] = stack.pop();
}
temp = ++number;
}else {
stack.push(numeralSystem[temp % n]);
temp /= n;
}
}
StringBuilder sb = new StringBuilder();
for(int i = p - 1; i < sequence.length; i+=m) {
sb.append(sequence[i]);
}
return answer = sb.toString();
}
}
'알고리즘 공부 > 프로그래머스' 카테고리의 다른 글
(Java)프로그래머스 코딩테스트 연습 - 2019 카카오 개발자 겨울 인턴십 - 튜플 (0) | 2020.12.12 |
---|---|
(Java)프로그래머스 코딩테스트 연습 - 연습문제 - 가장 큰 정사각형 찾기 (0) | 2020.12.11 |
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [3차] 파일명 정렬 (0) | 2020.12.09 |
(Java)프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - [3차] 압축 (0) | 2020.12.08 |
(Java)프로그래머스 코딩테스트 연습 - 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방 (0) | 2020.12.01 |