9020번

이성현·2021년 12월 9일
0

백준문제

목록 보기
3/8

1.문제

2.풀이

1.처음 풀이(시간초과오류)

처음 문제를 풀었을때는 에라토스테네스의 체를 통해 소수를 구하는 과정을 while문 안에 넣어 테스트 케이스마다 반복되게 코드를 짜서 시간초과오류를 받았고, 그래서 밖으로 뺏지만 그래도 여전히 오류가 났다.

그래서 시간을 줄이기 위해 생각해보니 이중포문에서 시간을 많이 잡아 먹는것 같아 이를 개선 하도록 코드를 짯다.

굳이 n이하의 모든 소수 덧셈 쌍을 구하기위해 포문안에 한번더 포문을 쓰기보단 i라는 숫자가 있으면 나머지 한개 쌍은 n-i라는 사실에 착안해 i와 n-i가 둘다 소수 인지 확인하는 코드를 작성했다.

결론적으로 O(n제곱) 코드를 O(n)으로 수정 할 수 있었다.

0개의 댓글