티스토리 뷰
programmers.co.kr/learn/courses/30/lessons/42839
코딩테스트 연습 - 소수 찾기
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다. 각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 �
programmers.co.kr
문제는 이렇다.
숫자들이 주어지고 이 숫자들이 조합되어 나올 수 있는 모든수 중에 소수가 몇개인가? 를 return하는 문제
처음에는 모든 수의 조합을 for문을 이용하여 구현하려 했으나 구현 도중에 모든 경우의 조합수를 구현해놓은 내장함수가 있지 않을까? 라는 생각이 들어 검색했다.
진짜로 있었다.
programmers.co.kr/learn/courses/4008/lessons/12836
파이썬을 파이썬답게 - 순열과 조합 - combinations, permutations
본 강의는 파이썬 문법을 이미 알고 있는 분들을 대상으로 만들어졌습니다. ##### 이런 분들께 추천합니다 * 파이썬 문법을 알고 계시는 분 * 알고리즘 문제를 조금 더 쉽게 풀고 싶은 분 * Python 코
programmers.co.kr
#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
- 다리위를지나는트럭
- dict 연속성
- Vue.js강의
- Java수료
- windows10 chmod 400
- Python
- 윈도우 chmod
- Vue.js
- Vue.js 입문
- 배열 특정객체 제거
- 프로그래머스
- 데이터 사이언스 프로그래밍 파이썬
- 프로그래머스 코딩테스트
- 코딩테스트
- 코드잇 강의
- bootstrap5
- 부트스트랩 커스텀
- vue.js 개념
- Vue.js 프로젝트 투입 일주일 전
- 파이썬
- 입문
- 배열 특정요소 제거
- Vue.js 책
- vue bootstrap scss
- javascript 객체배열
- vue.js 특징
- chmod 400
- MySQL 문제
- heap max
- JavaScript
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |