https://school.programmers.co.kr/learn/courses/30/lessons/17687
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
조건
제한시간 : 45분 이내
이 문제에서 가장 중요했던 건, 진법을 어떤 식으로 처리해야할까? 였던 거 같다.
처음 접근은 진법을 변환해주는 메서드를 만들어서 구현하려고 했지만, 알파벳이 나오는 이유 때문에 로직이 지저분해져서 다른 방법이 있는지 생각해보았다.
Integer.toString(변환할 수, n진법) 이라는 메서드를 사용하게 되면, 진법 변환을 해주니 해당 메서드를 알고 있다면 금방 접근해서 풀 수 있었을 거 같다.
이 문제는 저 메서드를 알고 있냐 모르고 있냐 차이로 빠르게 풀수 있다 없다를 구분 지을 수 있을 거 같다.
class Solution {
static public String solution(int n, int t, int m, int p) {
StringBuilder sb = new StringBuilder();
int len = m * t;
int num = 0;
while (sb.length() < len) {
sb.append(Integer.toString(num, n).toUpperCase());
num++;
}
String s = sb.toString();
sb.setLength(0);
for (int i = 0; i < t; i++) {
sb.append(s.charAt(m * i + p - 1));
}
return sb.toString();
}
}
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스 *Java] - 다음 큰 숫자 (0) | 2022.09.06 |
---|---|
[프로그래머스 *Java] - 파일명 정렬 (0) | 2022.08.24 |
[프로그래머스 *Java] - 방금 그곡 (0) | 2022.08.19 |
[프로그래머스 *Java] - 점프와 순간이동 (0) | 2022.08.18 |
[프로그래머스 *Java] - 스킬트리 (0) | 2022.08.17 |