Skip to content

Conversation

@suyeun84
Copy link
Contributor

🧷 문제 링크

https://www.acmicpc.net/problem/14622

🧭 풀이 시간

60분

👀 체감 난이도

✏️ 문제 설명

두 사람이 번갈아 가면서 소수를 말하는데

  1. 소수가 아닌 수를 부르는 경우
    -> 상대방이 말한 소수중 3번째로 큰 수만큼 점수 얻음
    -> 상대방이 말한 소수 3개 미만이면 상대가 1000점 얻음
  2. 지금까지 한번이라도 등장한 소수를 말할 경우
    -> 해당 소수 말한 팀 -1000점 얻고, 말한 소수로 기록되지 않음

🔍 풀이 방법

**소수인지 여부 **
[에라토스테네스의 체] 사용해서 5000000길이의 prime배열에 소수 여부 저장해둠.

지금까지 등장한 소수인지 여부
5000000길이의 primeExist배열에 등장 여부 저장해둠.

지금까지 상대방이 말한 소수 중 3번째로 큰 수
ArrayList에 저장하되, 오름차순으로 정렬하고, 길이가 3이 넘어가면 바로 index 0 삭제하기

⏳ 회고

에라토스테네스의 체에 대해서 더 공부해야겠다..
그리고 소수여부, 등장한소수여부와 같은거는 그냥 배열 만들어서 저장해두는게 훨씬 빠르다..
(안하면 시간초과....난다....)

@suyeun84 suyeun84 added the hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때 label Feb 12, 2025
@ShinHeeEul ShinHeeEul merged commit 60cb503 into main Feb 12, 2025
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

hint 💡 반례를 참고했거나 힌트를 얻고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants