본문 바로가기

BOJ 1644 - 소수의 연속합 문제 링크https://www.acmicpc.net/problem/1644 문제 해결 1. 에라토스테네스의 체를 사용해서 소수들을 구하고 벡터에 삽입한다. 2. 소수들의 연속된 합이 되는 개수를 구한다. 주의할 점 || 생각해볼 점 1. 에라토스테네스의 체는 보통은 sqrt(N)만큼만 확인해서 소수임을 판별하는 데 사용하는 경우가 대부분인데, 이 문제에서는 sqrt(N)을 넘어가는 숫자들의 합으로 N이 될 수 있으므로, N만큼 확인해봐야한다. 2. N의 최대 범위가 4,000,000이고 소수의 개수는 2,831,461개가 된다. for문을 이중으로 사용하나 연속된 두 소수의 합이 N이 되거나 N을 초과하게 되므로 크게 문제될 것이 없다. 참고 - https://ko.wikipedia.org/wiki/%E.. 더보기
BOJ 2526 - 싸이클 문제 링크https://www.acmicpc.net/problem/2668 문제 해결 1. 다음 정점 = (P로 나눈 나머지) * N % P; 2. 배열을 만들어서 numbering한 값을 넣어준다. 3. 만약 배열의 값이 0이 아니라면 사이클이 생긴 것이므로 그 때의 값과 사이클 시작의 값의 차를 출력한다. 주의할 점 || 생각해볼 점 1. P의 범위가 97 밖에 안되므로 사이클이 생기는 정점은 0 ~ 96 까지다. 2. 한 정점에서 나가는 간선은 무조건 하나라는 사실을 인지하면 더욱 수월하게 해결할 수 있다. 참고 - http://vjerksen.tistory.com/30 (사이클을 DFS로 해결) ※ 정확하고 부드러운 태클은 언제나 환영입니다. 더보기
BOJ 2668 - 숫자고르기 문제 링크https://www.acmicpc.net/problem/2668 문제 해결 1. 간선이 하나인 그래프로 생각하고 문제를 해결할 수 있다. 2. 그래프 내에서 생기는 사이클 중에서 겹치지 않는 큰 사이클들을 모두 구한다. 주의할 점 || 생각해볼 점 1. 오름차순으로 출력하는 것과 정점의 중복을 막기 위해서 Set을 사용했다. 참고 - http://vjerksen.tistory.com/30 (사이클을 DFS로 해결) ※ 정확하고 부드러운 태클은 언제나 환영입니다. 더보기