문제
나의 생각
숫자를 문자 배열로 변환후 각 인덱스 값이 3,6,9 값과 같다면 answer 값 증가하는 방식으로 접근.
나의 답안
public static int solution(int order) {
int answer = 0;
String a = String.valueOf(order);
char[] b = new char[a.length()];
for(int i = 0 ; i < a.length(); i++){
b[i] = a.charAt(i);
if (b[i] == '3' || b[i] == '6' || b[i] == '9'){
answer++;
}
}
return answer;
}
다른 답안
여러개의 조건문에 대한 부분만 풀었어도 stream으로 처리가 되었을 텐데, 그게 안되어서 중간에 포기했다. 다시 한번더 희표님의 코드를 보고 다시 어떻게 쓰는지 파악을 하고 있다.
import java.util.Arrays;
class Solution {
public int solution(int order) {
return (int) Arrays.stream(String.valueOf(order).split("")).map(Integer::parseInt).filter(i -> i == 3 || i == 6 || i == 9).count();
}
}
'Programmers 문제풀이 > Lv.0' 카테고리의 다른 글
문자열 정렬하기 (2) (0) | 2023.02.28 |
---|---|
숫자 찾기 (0) | 2023.02.28 |
약수 구하기 (0) | 2023.02.28 |
피자 나눠 먹기 (2) (0) | 2023.02.28 |
외계행성의 나이 (0) | 2023.02.28 |