🔗 문제 링크
[프로그래머스] n진수 게임 / 2018 KAKAO BLIND RECRUITMENT(3차)
📝 풀이 과정
n진수로 이루어진 숫자를 차례대로 붙인 문자열을 구한 뒤 튜브가 말할 순서마다 뽑아서 붙이는 방식을 사용하였다.
구할 개수 t
개에 인원은 총 m
명이므로 구해야 할 숫자는 t * m
보다 작다는 것을 알 수 있기 때문에 1부터 t*m까지의 숫자를 n진수로 변환한 뒤 문자열에 붙이기위해 String.toString(int n, int radix)
메소드를 사용했다. 숫자 n을 radix진수 형태의 문자열로 바꾸어주기때문에 쉽게 변환할 수 있다.
이후 반복문을 사용해 튜브는 p
번째 순서로 t
번 숫자를 말해야하기 때문에 p - 1
부터 인덱스 m(사람 수)만큼 늘려 말할 숫자들을 문자열에 붙이고, t
개 이상이 될 때까지 반복해주었다. String.toString
은 소문자로 반환해주기때문에 마지막에 toUpperCase()
메소드를 사용해 대문자로 변환한 값을 반환해주었다.
💻 코드
class Solution {
public String solution(int n, int t, int m, int p) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i <= t * m; i++)
sb.append(Integer.toString(i, n));
StringBuilder ans = new StringBuilder();
for (int i = p - 1; ans.length() < t; i += m)
ans.append(sb.charAt(i));
return ans.toString().toUpperCase();
}
}
'알고리즘 풀이 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 신규 아이디 추천 / 2021 KAKAO BLIND RECRUITMENT - JAVA (0) | 2021.01.28 |
---|---|
[프로그래머스] 파일명 정렬 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA (0) | 2021.01.25 |
[프로그래머스] 압축 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA (0) | 2021.01.25 |
[프로그래머스] 방금그곡 / 2018 KAKAO BLIND RECRUITMENT(3차) - JAVA (0) | 2021.01.14 |
[프로그래머스] 캐시 / 2018 KAKAO BLIND RECRUITMENT(1차) - JAVA (0) | 2021.01.14 |