JAVASCRIPT/코딩테스트
프로그래머스 레벨1 - 나머지가 1이 되는 수 찾기(자바스크립트)
진짠
2023. 2. 10. 13:39
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/87389
문제
많이 간단하다. 입문자들도 부담없이 풀 수 있는 문제. 변수 n을 x로 나눈 나머지가 1인 수 중 가장 작은 자연수를 찾는 것이다.
제한사항
n은 3이상 1,000,000 이하. 따로 처리해줄 부분은 없었다.
답
function solution(n) {
for(let i=0;i<n;i++) {
if(n%i == 1) {
return i;
}
}
}
for문을 돌려서 나머지가 1이 되는 수를 찾는 순간 return 시켰다. 제일 작은 자연수를 찾는 것이기 때문에 for문을 0에서부터 차례대로 큰 수로 돌렸다.
비교
이런 간단하고 쉬운 문제는 풀이과정에서 도움이 되는 것보다는 다른 사람의 코드를 보는 것이 훨씬 더 도움이 될 때가 많다.(이상하고 괴짜스럽게 푸신 분들도 많아서 나름 재밌다.)
당장 생각해봐도 for문 대신 while, iterator을 써서 다른 방법으로 풀 수 있으니 말이다.
while (x++)
이런 형식으로 while안에 증감연산자를 넣어 비교하는 것도 가능하다. for문보다 속도 측면에서는 별 차이가 없지만 훨씬 손가락도 덜 움직이고 직관적이다.
var answer = 1;
while(n%answer!=1)answer++;
이런 식으로 나머지 1이 아니면 증가시켜도 된다. 하지만 n만큼 반복횟수로 돌아서 속도 측면에서는 떨어질 듯.
총평
쉬운 코딩에도 배울 것은 있다. 특히 나같은 초보라면 더더욱.
728x90