
내가 작성한 코드
class Solution {
public String solution(int n, int t, int m, int p) {
StringBuilder answerSb = new StringBuilder();
StringBuilder wordsSb = new StringBuilder(); // n진수로 변환된 문자열 담을 빌더
int num = 0; // 말할 숫자
int turn = 0; // 턴 수
while (answerSb.length() < t) {
String str = Integer.toString(num++, n); // n진수로 변환
wordsSb.append(str.toUpperCase()); // 담아두기
try {
answerSb.append(wordsSb.charAt(p + m * turn - 1)); // 자기차례 문자 담기
turn++;
} catch (StringIndexOutOfBoundsException e) { // 예외처리
continue;
}
}
return answerSb.toString();
}
}
다른 사람의 코드
class Solution {
public String solution(int n, int t, int m, int p) {
String answer = "";
int startNum = 0;
String targetString = new String(); // n진수로 변환한 문자열들을 담을 변수
String retString = new String(); // p번째 문자열을 담을 변수
// 필요한 양 만큼 문자열 추가해두기
while (targetString.length() < m * t) {
targetString += Integer.toString(startNum++, n);
}
// 문자열 뽑아서 저장
for (int i = 0; i < t; i++) {
retString += targetString.charAt(p - 1 + i * m);
}
answer = retString.toUpperCase();
return answer;
}
}
Share article