코딩테스트
코테 Lv0 - 저주의 숫자 3
Beekei
2024. 11. 13. 00:12
반응형
문제 설명
3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 3의 배수와 숫자 3을 사용하지 않습니다.
3x 마을 사람들의 숫자는 다음과 같습니다.
정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return 하도록 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ n ≤ 100
입출력 예
입출력 예 #1
Input : 15 / Output : 25
입출력 예 #2
Input : 40 / Output : 76
제출코드
import java.util.stream.IntStream;
class Solution {
public int solution(int n) {
return IntStream.rangeClosed(1, n)
.reduce(0, (a , b) -> {
do {
a++;
} while (a % 3 == 0 || String.valueOf(a).contains("3"));
return a;
});
}
}
- 1부터 n까지 IntStream을 생성해 돌아가며 0부터 1씩 증가시킵니다.
- 해당 숫자가 3의 배수가 아니거나 문자열 "3"이 존재하지 않을 때까지 1씩 증가시킵니다.
- n번 반복하며 누적된 값을 반환합니다.
해당 문제는 특별한 규칙이 있을 줄 알고 머리를 써서 수식을 이리저리 만들어보았지만 테스트는 모두 통과하지 못해서 차례대로 계산한 코드를 작성하였습니다.
만약 더 좋은 방법을 알고 계신다면 댓글 부탁드립니다...
출처 : https://school.programmers.co.kr/learn/courses/30/lessons/120871
반응형