728x90
반응형

내 풀이
class Solution {
public int[] solution(long n) {
int length = Long.toString(n).length();
int[] answer = new int[length];
int index = 0;
while(n>0) {
answer[index++] = (int)(n%10);
n/=10;
}
return answer;
}
}
int length = Long.toString(n).length();
입력 n을 문자열로 변환하고 그 길이를 구해 length 변수에 저장.
다른 사람 풀이
import java.util.stream.IntStream;
class Solution {
public int[] solution(long n) {
return new StringBuilder().append(n).reverse().chars().map(Character::getNumericValue).toArray();
}
}
1. new StringBuilder().append(n)
StringBuilder 인스턴스를 생성하고, append(n) 메소드를 사용하여 long 타입의 n을 문자열로 변환하고 StringBuilder에 추가한다
2. reverse()
StringBuilder 인스턴스의 reverse() 메소드를 호출하여 문자열을 뒤집는다
3. chars()
chars() 메소드를 호출하여 문자열의 각 문자를 int 타입의 값으로 표현하는 스트림을 얻는다
이 스트림은 각 문자의 Unicode 코드 포인트를 원소로 한다
4. map(Character::getNumericValue)
map 메소드를 사용하여 스트림의 각 원소에 Character::getNumericValue 함수를 적용한다
이 함수는 각 문자의 Unicode 코드 포인트를 해당 문자가 표현하는 int 타입의 숫자 값으로 변환한다
5. toArray()
스트림의 toArray() 메소드를 호출하여 스트림의 모든 원소를 배열에 담아 반환한다
class Solution {
public int[] solution(long n) {
String a = "" + n;
int[] answer = new int[a.length()];
int cnt=0;
while(n>0) {
answer[cnt]=(int)(n%10);
n/=10;
System.out.println(n);
cnt++;
}
return answer;
}
}
"" 이 부분은 빈 문자열을 의미
"" + n: 여기서 + 연산자는 문자열 연결 연산자로 작동
n은 long 타입의 변수이지만, 문자열 연결 연산자를 사용하여 문자열과 결합하면
n은 자동으로 문자열로 변환된다.
오랜만에 코테하려니 1단계도 어렵다ㅠ
728x90
반응형
'Algorithm > 프로그래머스' 카테고리의 다른 글
| [프로그래머스/Java]Comparator와 copyOfRange (0) | 2023.09.30 |
|---|---|
| [프로그래머스/Java] 정수 제곱근 판별 (0) | 2023.09.13 |
| [프로그래머스/Java] 문자열 내 p와 y의 개수 (0) | 2023.09.11 |
| [프로그래머스/Java] 나머지가 1이 되는 수 찾기 (0) | 2023.09.06 |
| [프로그래머스/Java] 자릿수 더하기 (0) | 2023.09.05 |