본문 바로가기
백준 코딩테스트/실버

2960) 에라토스테네스의 체 (C++)

by xortl98 2022. 6. 1.
728x90

 출처 

https://www.acmicpc.net/status?user_id=xortl98&problem_id=2960&from_mine=1 

 

채점 현황

 

www.acmicpc.net

 내 풀이 

#include <iostream>
#include <algorithm>
using namespace std;

int main() {

	int a[10001];
	int N, K;
	int count = 0;
	cin >> N >> K;

	//2부터 10까지 1로 만들어줍니다
	for (int i = 2; i <= N; i++) {
		a[i] = 1;
	}

	//2부터 배수를 구해 나가면서 1로 되어있으면 0으로 바꿔줍니다. 그리고 카운트 증가
	for (int i = 2; i <= N; i++) {

		for (int j = 1; i * j <= N; j++) {

			if (a[i * j] == 1) {
				a[i * j] = 0;
				count++;

				//카운트가 K와 같아졌을 때의 i*j 곱 출력
				if (count == K) {
					cout << i * j << endl;
					return 0;
				}

			}
		}
	}
}

 해설

인터넷에 있는 한 블로그를 참고해서 풀어보았습니다.

 느낀점 

내꺼는 왜 시간초과인지 잘모르겠다.

'백준 코딩테스트 > 실버' 카테고리의 다른 글

11931) 수 정렬하기 4 (C++)  (0) 2022.06.03
1158) 요세푸스 문제 (C++)  (0) 2022.06.03
11659) 구간 합 구하기 4 (C++)  (0) 2022.05.25
3036) 링 (C++)  (0) 2022.05.24
1934) 최소공배수 (C++)  (0) 2022.05.23