코딩테스트
프로그래머스 나머지가 1이 되는 수 찾기
다시은
2023. 12. 13. 09:51
실패한 풀이
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 함수도 알게 되었다!