실패한 풀이
n을 나눠서 나머지가 1인 동시에 3보다 크거나 같은 값들을 임의의 리스트에 집어넣고
그 리스트의 첫번째 값을 리턴했더니 정답률 80퍼...
- 생각해보니 나머지가 1인 나오는 가장 작은 자연수라 했으니 굳이 리스트에 다 집어넣어서 그 첫번째 값을 빼낼 필요가 없다. 어차피 for 문은 범위 내에서 작은 값부터 차례차례 대입하니 만족하는 값이 나오기만 하면 바로 반복문을 빠져나오면 되잖아
- i의 범위를 왜 3부터 시작하도록 만들었을까 n의 범위로 착각하고 실수로 집어넣은 것 같다.
- 마찬가지로 i 는 3보다 크거나 같을 필요가 없다. 그건 n 의 제한사항이다.
두번째 풀이
class Solution {
fun solution(n: Int): Int {
var answer: Int = 0
for (i in 1..n) {
if (n % i == 1) {
answer = i
break
}
}
return answer
}
}
다른 사람 풀이
filter 에 이어 first 함수도 알게 되었다!
'코딩테스트' 카테고리의 다른 글
프로그래머스 자연수 뒤집어 배열로 만들기 (1) | 2023.12.15 |
---|---|
프로그래머스 x만큼 간격이 n개의 숫자 (0) | 2023.12.14 |
프로그래머스 약수의 합 (0) | 2023.12.12 |
프로그래머스 짝수와 홀수, 평균 구하기, 자릿수 더하기 (1) | 2023.12.11 |
프로그래머스 배열의 평균값 (1) | 2023.12.08 |