본문 바로가기

코딩테스트

[프로그래머스(Programmers)/Level2](Python) 소수 찾기

 

 

<내 코드>

 

 

<풀이 과정>

permutation을 이용해서 종이조각을 한장씩 늘려가며 가능한 순열들을 구하고, 이를 정수형으로 바꿔서

소수를 찾아주는 함수인 is_prime을 통해 소수인지 판별하고 소수면 set에 더해준다.(중복되는 숫자가 있을수도 있기 때문이다.)

마지막으로 결과 셋인 res의 길이를 return해주면 원하는 결과값을 얻을수 있게 된다.

 

<느낀점>

소수를 구하는 함수를 작성하는 도중에 math.sqrt를 이용해서 구하면 시간복잡도를 절반 가까이 줄일수 있어 효율적이라는 사실을 깨달았고, 직접 바꿔서 코드를 돌려본 결과 걸리는 시간이 엄청나게 차이난다는 사실을 깨달았다. 추가적으로 set , list 간의 상호변환

에대해 공부할 수 있었고 '011'과 같은 문자열을 int형으로 바꾸면 앞의 0이 날라간다는 사실도 배웠다.(이 사실을 몰라서 30분 정도 헤멨다...)