https://school.programmers.co.kr/learn/courses/30/lessons/17687
풀이
각각 idx를 잡고 말하는 순서와 참가하는 인원을 계속 돌면서
튜브가 말하는 차례이면 StringBulider에 값을 추가해주는 식으로 풀었다.
개인적인 난이도는 백준 기준 실버 4 ? 정도 이지 않을까..
class Solution {
public static void main(String[] args) {
new Solution().solution(2, 4, 2, 1);
}
// n -> 진법 (2,4,8,16)
// t -> 말해야하는 개수
// m -> 게임 참가 인원
// p -> 순서
public String solution(int n, int t, int m, int p) {
StringBuilder sb = new StringBuilder();
int idx = 0;
int talkCount = 1;
while (sb.length() < t) {
String value = convert(n, idx);
for (int i = 0; i < value.length(); i++) {
if(talkCount++ == p && sb.length() < t) sb.append(value.charAt(i));
if(talkCount > m) talkCount = 1;
}
idx++;
}
return sb.toString().toUpperCase();
}
private String convert(int radix, int num) {
return Integer.toString(num, radix);
}
}
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 호텔 대실 (0) | 2023.07.04 |
---|---|
[프로그래머스] 카카오 기출 - 양궁대회 (0) | 2023.07.04 |
[프로그래머스] 혼자 놀기의 달인 (0) | 2023.06.20 |
[프로그래머스] 롤케이크 자르기 - java (0) | 2023.06.20 |
[프로그래머스] - 뒤에 있는 큰 수 찾기(LV2) java (2) | 2023.05.14 |