https://school.programmers.co.kr/learn/courses/30/lessons/17687
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
주요 포인트 및 문제 리뷰
- substring 메서드보다 charAt 메서드를 사용하는 게 더 직관성이 있어 보여서 Character 형 ArrayList를 사용하였다.
- 문제를 풀 때, ArrayList의 제네릭이 Character 형이다 보니 대소 비교를 통해 문자 형인지 숫자형인지 구분해야겠다고 생각했었다.
근데 다시 생각을 어차피 숫자는 UpperCase에 영향이 없어서 통으로 처리를 해주었다. - 진수 변환 후 문자열 반환은 Integer 클래스의 toString() 메서드를 이용하여 쉽게 할 수 있다.
- 차례는 1부터 세지만 인덱스는 0부터 시작하기 때문에 j 번째 턴에 자신이 말해야 하는 숫자는 가져오는 식은
(m * j) + p - 1 으로 설정하였다. - 문제를 채점 후 코드를 보면서 다시 생각을 해보니 ArrayList를 사용하지 말고 배열을 써도 됐을 것 같다.
소스코드
import java.util.*;
class Solution {
public String solution(int n, int t, int m, int p) {
String answer = "";
ArrayList<Character> characters = new ArrayList<>();
characters.add('0');
int num = 0;
String str;
while (characters.size() < t * m) {
num++;
str = Integer.toString(num, n);
for (int i = 0; i < str.length(); i++) {
characters.add(str.charAt(i));
}
}
for (int j = 0; j < t; j++) {
answer += characters.get((m * j) + p - 1).toString().toUpperCase();
}
return answer;
}
}
'프로그래머스' 카테고리의 다른 글
| 프로그래머스(자바, Java) - Level2. 2개 이하로 다른 비트 (0) | 2023.02.07 |
|---|---|
| 프로그래머스(자바, Java) - Level2. 할인행사 (1) | 2023.01.10 |
| 프로그래머스(자바, Java) - Level2. 스킬트리 (0) | 2022.12.24 |
| 프로그래머스(자바, Java) - Level2. 귤 고르기 (1) | 2022.12.24 |
| 프로그래머스(자바, Java) - Level2. 영어 끝말잇기 (0) | 2022.12.08 |