염딩코

백준 2501번 c++ 문제 풀이 본문

알고리즘 PS/C++

백준 2501번 c++ 문제 풀이

johnyeom 2022. 2. 24. 15:47

[문제] & [결과]

[해설]

이 문제는 제목에서 알 수 있듯이 어떤 특정 수의 약수를 구하는 문제이다. 

문제에서 보면 약수의 특성을 알려주는데, 바로 특정한 수를 특정한 수의 약수로 나누면 나머지가 0인 것이다.

그런데, 문제는 단순히 약수가 무엇인지 묻는 것이 아니라 K번째로 작은 수를 출력하도록 원한다.

K번째로 작은 수를 출력하기 위해서는 데이터가 정렬되어있거나 

약수를 작은 순서대로 저장해놓는 방법이있다. 

필자는 두 번째 방법을 이용했다. 그래서 vector을 이용해 반복문 i=1부터 비교해가면서 vector에 값을 저장했다.

if(n%i==0)을 보면 이 조건을 만족할 때, vector에 저장하는 것을 알 수 있다.

 

cnt는 출력의 세부 조건에 특정한 수의 약수의 개수가 K보다 작을 때 0을 출력하기 위해 설정했다.

'알고리즘 PS > C++' 카테고리의 다른 글

백준 27433번 c++ 풀이  (0) 2023.04.28
백준 2581번 c++ 문제 풀이  (1) 2022.02.24
백준 2576번 c++ 문제 풀이  (0) 2022.02.23
백준 10995번 c++ 문제 풀이  (0) 2022.02.23
백준 2747번 c++ 문제 풀이  (0) 2022.02.22