< 프로그래머스 문제풀이 >
해답 )
1. 아리스토텔레스의 체 방식을 이용해 소수를 구분해주는 리스트를 만듭니다. 이게 하나하나 체크하는것보다 빠르다고 하더라구요! (* 참조 : https://geonlee.tistory.com/115)
2. itertools 라이브러리를 이용하여 모든 케이스의 순열들을 all_arr 리스트에 집어 넣습니다.
(여기서 순열이라함은 수들을 나열해서 만들 수 있는 모든 케이스를 뜻합니다!
ex: list(itertools.permutations("123",1)) = [('1',), ('2',), ('3',)]
list(itertools.permutations("123",2)) = [('1', '2'), ('1', '3'), ('2', '1'), ('2', '3'), ('3', '1'), ('3', '2')] )
이것을 map 으로 이어서 하나의 문자열로 만들어줍니다.
3. 만든 모든 문자열들이 소수인지 확인하고 소수인 것들만 answerset 에 추가해줍니다.
마지막으로 answerset 인자의 수(소수의 개수)를 return 해줍니다.
(굳이 set으로 하는 이유는 중복된 인자들을 받지 않도록! )
* 예를들어 011 은 11과 같은 케이스에 속하므로 받지 않습니다!
출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges
728x90
'문제풀이 > Programmers' 카테고리의 다른 글
[프로그래머스💯] 코딩테스트 연습 > String, Date > 이름에 el이 들어가는 동물 찾기 (0) | 2019.09.22 |
---|---|
[프로그래머스💯] 코딩테스트 연습 > SELECT > 모든 레코드 조회하기 (0) | 2019.09.22 |
[프로그래머스💯] 코딩테스트 연습 > String, Date > 오랜 기간 보호한 동물(2) / INNER JOIN (0) | 2019.09.22 |
[프로그래머스💯] 코딩테스트 연습 > String, Date > DATETIME에서 DATE로 형 변환 / DATE_FORMAT (0) | 2019.09.22 |
[프로그래머스💯] 코딩테스트 연습 > String, Date > 루시와 엘라 찾기 , IN 절 (0) | 2019.09.21 |
댓글