Algorithm ( p & swlug )/Programmers

7월 2주차 과제 : 문제 4_나머지가 1이되는 수 찾기

JU__DY 2023. 7. 14. 18:12

7월 2주차 과제로 아래 문제를 풀어볼 것이다.

1. 두 수의 나눗셈
2. 몫 구하기
3. 나머지 구하기
4. 나머지가 1이 되는 수 찾기

마지막 문제이다.

문제를 보고 처음에 든 생각은 음..

1. 가장 작은 자연수를 구하기 위해서는 조건이 필요하겠다.

2. n을 x로 나눈 나머지가 1이 되려면 n%1==1이 성립해야겠다.

이 두가지였다.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

int solution(int n) {
    int answer = 0;
    int i;
    for(i=3; i<=10000000; i++){
        if (n%i==1){
            answer=i;
            break;
}
    i++;
}
    return answer;
}
int main()
{
    solution(10);
    return 0;
}

일단 이렇게 반복문을 통해서 조건에 맞게 3보다 크거나 같게 설정을 하고 10000000보다 작도록 설정을 해봤다.

while로 해서 무한 루프를 만들까도 고민했지만 if문을 쓰기로 생각했다.

그리고 가장 작은 수가 나오게끔 작은수부터 차례대로 i++하고, break문을 통해 탈출하고 반환하도록 했다.

test도 통과했다. 풀었구나 하고 생각했는데!

오잉 뭐가 잘못된듯 하다. 다시풀어봐야지

그냥 while문으로 풀어봤다. x값을 초기화하고, 무한 루프에 나머지가 1인 값이 나오면 탈출하도록 코드를 짰다.

아까와 다른점이 있다면 반복문 형태와 초기화 유무 정도?

혹시나 for로 되는지 다시한번 확인해봤다.

아까는 변수를 잘못생각해서 구간설정을 잘못했던 것 같다. for 구간 설정을 다시해주고나니 문제해결

문제를 풀다보면 예전에 비해서 많이 성장하고 있다는 느낌이 들지만 여전히 공부가 많이 필요할 것 같다.

이번주 과제 끄읕!(●'◡'●)