일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 삼성SDS
- Brigthics를 이용한 분석
- 포스코 청년
- 삼성SDS Brightics
- Brightics를 이용한 분석
- 직원 이직여부
- 노코드AI
- 추천시스템
- 데이터분석
- Brigthics
- 모델링
- Brightics Studio
- 삼성SDS Brigthics
- 삼성 SDS Brigthics
- 혼공
- 혼공학습단
- Brigthics Studio
- 포스코 아카데미
- 삼성 SDS
- 브라이틱스
- 캐글
- Brightics
- 혼공머신러닝딥러닝
- 직원 이직률
- 영상제작기
- 브라이틱스 서포터즈
- 개인 의료비 예측
- 혼공머신
- 데이터 분석
- 팀 분석
- Today
- Total
데이터사이언스 기록기📚
[프로그래머스] Level 1_소수 만들기 본문
문제 유형
Summer/Winter Coding(2018~)
문제
https://school.programmers.co.kr/learn/courses/30/lessons/12977
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 문제 풀이
1. itertools, 소수 찾기 알고리즘
- 조합 이용하기 위해 itertools combinations 이용
- 소수 찾기 알고리즘 코드 기억하기
from itertools import combinations
def solution(nums):
answer = 0
num_sum = []
num = list(combinations(nums,3))
for i in range(len(num)):
num_sum.append(sum(num[i]))
for j in num_sum:
for i in range(2,j):
if j % i == 0:
break
if j - 1 == i: # break 빠져나온 소수 아닌 것들 걸러내기 위함(루프 다 돌고 나온 숫자 == j-1)
answer += 1
return answer
2. itertools, sympy 이용
- 프로그래머스는 sympy 모듈을 지원하지 않는다ㅠ
- sympy의 isprime() 함수를 이용하면 소수 판별해준다.
from itertools import combinations
from sympy import *
def solution(nums):
answer = 0
num_sum = []
num = list(combinations(nums,3))
for i in range(len(num)):
num_sum.append(sum(num[i]))
#판별하기
for j in num_sum:
if isprime(j) == True:
answer += 1
return answer
다른 사람들의 문제풀이
1. 나의 풀이와 유사
- for - else문 : else문을 for문과 같은 줄에 쓰면, for문의 반복이 끝나고나서 else문 실행(break로 빠져나가지 않는다면)
- for문과 함께 쓰는 else는, for문이 중간 break등으로 끊기지 않고 끝까지 수행되었을 때 수행하는 코드
https://harryp.tistory.com/317
[Python] 파이썬 for-else 문
안녕하세요. 파이썬에 있는 편리한 문법인 for-else 문에 대한 포스팅 입니다. 보통 프로그래밍 언어에서 'else'라고 하면 if와 함께 오는 경우가 거의 대부분입니다. 하지만 파이썬에서는 for 문과도
harryp.tistory.com
from itertools import combinations as cb
def solution(nums):
answer = 0
# 조합 3개 묶어서 바로 이용
for a in cb(nums, 3):
cand = sum(a)
# 소수인지 판별
for j in range(2, cand):
if cand%j==0:
break
else:
answer += 1
return answer
2. 에라토스테네스의 체와 유사
- prime_number() : answer == 1이면 1로만 나누어 지는것, answer가 1보다 크면 소수가 아님 -> 1인 경우만 소수로 판별
from itertools import combinations
def prime_number(x):
answer = 0
for i in range(1,int(x**0.5)+1):
if x%i==0:
answer+=1
return 1 if answer==1 else 0
def solution(nums):
return sum([prime_number(sum(c)) for c in combinations(nums,3)])
3. 에라토스테네스의 체
https://subinze.tistory.com/67?category=935075
[프로그래머스] Level 1_소수 찾기
유형 연습문제 문제 https://programmers.co.kr/learn/courses/30/lessons/12921 코딩테스트 연습 - 소수 찾기 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요. 소수..
subinze.tistory.com
리뷰
- n개씩 선택해서 계산 : from itertools import combinations
- 소수 찾기 알고리즘 : 에라토스테네스의 체, 해당 코드, sympy의 isprime()
- for - else문 : break로 멈춰지지 않고 한 번 더 판별해야할 때
'Coding Test > 프로그래머스(Python)' 카테고리의 다른 글
[프로그래머스] Level 1_문자열 내 마음대로 정렬하기 (0) | 2022.07.15 |
---|---|
[프로그래머스] Level 1_[1차] 비밀지도 (0) | 2022.07.14 |
[프로그래머스] Level 1_없는 숫자 더하기 (0) | 2022.07.09 |
[프로그래머스] Level 1_이상한 문자 만들기 (0) | 2022.07.09 |
[프로그래머스] Level 1_크레인 인형뽑기 게임 (0) | 2022.07.08 |