JAVASCRIPT/코딩테스트

프로그래머스 레벨1 - 나머지가 1이 되는 수 찾기(자바스크립트)

진짠 2023. 2. 10. 13:39
728x90

https://school.programmers.co.kr/learn/courses/30/lessons/87389

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제

많이 간단하다. 입문자들도 부담없이 풀 수 있는 문제. 변수 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