728x90
※주의※
저의 풀이가 정답은 아닙니다.
다른 코드가 더 효율적이거나 좋을 수 있습니다.
언제나 다른 사람의 코드는 참고만 하시기 바랍니다.
[문제 풀이 사이트]
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[문제 설명]
자연수 n이 매개변수로 주어집니다. n을 x로 나눈 나머지가 1이 되도록 하는 가장 작은 자연수 x를 return 하도록 solution 함수를 완성해주세요. 답이 항상 존재함은 증명될 수 있습니다.
[제한 사항]
3 ≤ n ≤ 1,000,000
[입출력 예]
n | result |
10 | 3 |
12 | 11 |
[입출력 예 설명]
입출력 예 #1
- 10을 3으로 나눈 나머지가 1이고, 3보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 3을 return 해야 합니다.
입출력 예 #2
- 12를 11로 나눈 나머지가 1이고, 11보다 작은 자연수 중에서 문제의 조건을 만족하는 수가 없으므로, 11을 return 해야 합니다.
[문제 풀이]
n을 x로 나누었을 때 나머지가 1이되는 가장 작은 자연수를 리턴해야한다.
- n을 우선 시작 값을 2로하여 나누어준다.
- 나머지가 1이 아니라면 값을 1을 증가 시켜서 해당 값으로 나눈다.
- 나머지가 1이라면 반복문을 빠져나와서 나눈 값을 리턴한다.
[최종 코드]
[GitHub]
GitHub - SmallPeanutPark/Programmers: Study Programmers for Coding Test
Study Programmers for Coding Test. Contribute to SmallPeanutPark/Programmers development by creating an account on GitHub.
github.com
#include <string>
#include <vector>
using namespace std;
int solution(int n) {
int answer = 1;
while (true) {
if (n % answer == 1) {
break;
}
++answer;
}
return answer;
}
728x90
'PS > Programmers' 카테고리의 다른 글
[Programmers Level1] 약수의 개수와 덧셈(C++) (0) | 2022.07.10 |
---|---|
[Programmers Level1] 부족한 금액 계산하기(C++) (0) | 2022.07.10 |
[Programmers Level1] 없는 숫자 더하기(C++) (0) | 2022.07.09 |
[Programmers Level1] 음양 더하기(C++) (0) | 2022.07.09 |
[Programmers Level2] 주식가격(C++) (0) | 2022.07.04 |
댓글