티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/42839
문제는 이렇다.
숫자들이 주어지고 이 숫자들이 조합되어 나올 수 있는 모든수 중에 소수가 몇개인가? 를 return하는 문제
처음에는 모든 수의 조합을 for문을 이용하여 구현하려 했으나 구현 도중에 모든 경우의 조합수를 구현해놓은 내장함수가 있지 않을까? 라는 생각이 들어 검색했다.
진짜로 있었다.
programmers.co.kr/learn/courses/4008/lessons/12836
#https://programmers.co.kr/learn/courses/4008/lessons/12836
import itertools
pool = ['A', 'B', 'C']
print(list(map(''.join, itertools.permutations(pool)))) # 3개의 원소로 수열 만들기
print(list(map(''.join, itertools.permutations(pool, 2)))) # 2개의 원소로 수열 만들기
import itertools , permutations 를 이용하면 모든 조합을 알려준다.
모든 조합을 구현하려고 열심히 시간과 머리를 썻었는데 내장함수가 있었다니.
앞으로는 검색을 먼저하는 습관을 들여야 겠다. 나의 코딩시간도 효율적으로 하기 위해 ..
그래서 완성한 코드.
isPrime을 만들어서 소수를 체크하고
permutations로 나온 문자열들을 int형으로 바꿔 넣어서 isPrime 이 True를 리턴하면 answer에 넣는다.
한자리씩 조합이 가능하고 숫자가 중복될수도 있기때문에 필히 중복된 정답들이 발생하는데, answer을 set()형태로 지정함으로서 중복 문제는 해결했다.
011과 같이 으로 시작하는 숫자는 11과 중복되니까 0으로 시작하지 않는 문자열들만 넣어주었다.
이번 연습문제로 itertools나 permutation같은 내장함수 사용법을 알게되어서 도움이 되었다.
특히 검색능력도 코딩의 능력중 하나라는것도 되새기게 되었다.
모든 조합의 수를 구현하려고 시간을 엄청 낭비했지만 내장함수의 도움으로 내가 기존에 짯던 코드보다 더 간편하고 효율적인 함수를 이용하니까 스트레스도 덜 받고 좋았다.
'Python > python 코딩테스트' 카테고리의 다른 글
[Python]프로그래머스 코딩테스트 체육복 (0) | 2020.10.07 |
---|---|
[Python]프로그래머스 코딩테스트 카펫 (0) | 2020.10.06 |
[Python] 프로그래머스 코딩테스트 모의고사 (0) | 2020.10.01 |
[Python]프로그래머스 코딩테스트 가장큰수 (0) | 2020.09.30 |
[Python] 프로그래머스 코딩테스트 K번째수 (0) | 2020.09.29 |
- Total
- Today
- Yesterday
- 배열 특정객체 제거
- 윈도우 chmod
- MySQL 문제
- 데이터 사이언스 프로그래밍 파이썬
- heap max
- vue bootstrap scss
- 프로그래머스 코딩테스트
- 부트스트랩 커스텀
- 배열 특정요소 제거
- windows10 chmod 400
- 코드잇 강의
- 코딩테스트
- Java수료
- 프로그래머스
- bootstrap5
- JavaScript
- dict 연속성
- 다리위를지나는트럭
- javascript 객체배열
- Vue.js 책
- vue.js 개념
- 파이썬
- chmod 400
- Vue.js 프로젝트 투입 일주일 전
- vue.js 특징
- 입문
- Vue.js 입문
- Python
- Vue.js강의
- Vue.js
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |