Skip to content

Commit 0d55239

Browse files
committed
add PROGRAMMERS-17687
1 parent 35c1abe commit 0d55239

File tree

2 files changed

+43
-0
lines changed

2 files changed

+43
-0
lines changed

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
| PROGRAMMERS-17677 | [java](programmers/problem17677) | [뉴스 클러스터링 (News Clustering)](https://school.programmers.co.kr/learn/courses/30/lessons/17677) |
2525
| PROGRAMMERS-17680 | [java](programmers/problem17680) | [캐시 (Cache)](https://school.programmers.co.kr/learn/courses/30/lessons/17680) |
2626
| PROGRAMMERS-17684 | [java](programmers/problem17684) | [압축 (Compression)](https://school.programmers.co.kr/learn/courses/30/lessons/17684) |
27+
| PROGRAMMERS-17687 | [java](programmers/problem17687) | [n진수 게임 (n-base Game)](https://school.programmers.co.kr/learn/courses/30/lessons/17687) |
2728
| PROGRAMMERS-42577 | [java](programmers/problem42577) | [전화번호 목록 (List of Phone Numbers)](https://school.programmers.co.kr/learn/courses/30/lessons/42577) |
2829
| PROGRAMMERS-42578 | [python](programmers/problem42578) | [의상 (Clothes)](https://school.programmers.co.kr/learn/courses/30/lessons/42578) |
2930
| PROGRAMMERS-42586 | [java](programmers/problem42586) | [기능개발 (Function Development)](https://school.programmers.co.kr/learn/courses/30/lessons/42586) |
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
package problem17687;
2+
3+
public class NBaseGame {
4+
public static void main(String[] args) {
5+
var sol = new NBaseGame();
6+
var n1 = 16;
7+
var t1 = 16;
8+
var m1 = 2;
9+
var p1 = 1;
10+
var expected1 = "0111";
11+
var result1 = sol.solution(n1, t1, m1, p1);
12+
System.out.println("expected: " + expected1 + ", result: " + result1);
13+
}
14+
15+
/**
16+
* find n-th output of p
17+
*
18+
* @param n base
19+
* @param t number
20+
* @param m players
21+
* @param p tube (target player)
22+
* @return output
23+
*/
24+
public String solution(int n, int t, int m, int p) {
25+
var sb = new StringBuilder();
26+
27+
int index = 0;
28+
while (sb.length() < m * t) {
29+
sb.append(Integer.toString(index, n).toUpperCase());
30+
index++;
31+
}
32+
33+
var answer = new StringBuilder();
34+
int pIndex = p - 1;
35+
for (int i = 0; i < t; i++) {
36+
answer.append(sb.charAt(pIndex));
37+
pIndex += m;
38+
}
39+
40+
return answer.toString();
41+
}
42+
}

0 commit comments

Comments
 (0)