티스토리 뷰

내가 생각한 풀이 방식

 

1. 먼저 1부터 10000까지의 수를 리스트에 저장

2. 1부터 for문 돌면서 차례대로 ab + a + b 를 실행해 보고 그 때 나온 수를 삭제

3. 최종적으로 list에 남은 수를 출력

 

배열보다는 리스트를 사용하는 것이 데이터를 삭제하고 공간을 줄이는데 좋다고 생각했고 위 과정을 코드로 작성하면 금방 문제를 풀 수 있을거라고 생각했지만 문제가 있었다!

리스트의 경우 반복문에서 인덱스를 이용해 삭제를 진행하면 인덱스가 같이 줄어든다는 것! ! 그래서 원하는대로 결과가 나오지 않았다...

 

그러던 중 문제 하단 알고리즘 분류에서 이 문제가 '에라토스테네스의 체'에 속한다는 것을 파악하고 이를 검색해 나름대로 문제에 적용을 해보았다.

 

풀이한 코드

개선 방향

 

1. 리스트의 경우 반복 중 삭제 시 'iterator'라는 것을 사용하면 된다.

2. 추가적으로 더 코드를 효과적으로 개선하기 위한 방법은 생각해 볼 것... (숫자를 자리 수 별로 더하는 부분 등...)

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함