코테공부

프로그래머스 46일차 - 소수 찾기

알면 알 수록 재밌다! 2023. 4. 3. 09:03
문제 설명
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.각 종이 조각에 적힌 숫자가 적힌 문자열 numbers가 주어졌을 때, 종이 조각으로 만들 수 있는 소수가 몇 개인지 return 하도록 solution 함수를 완성해주세요.

제한사항
numbers는 길이 1 이상 7 이하인 문자열입니다.numbers는 0~9까지 숫자만으로 이루어져 있습니다."013"은 0, 1, 3 숫자가 적힌 종이 조각이 흩어져있다는 의미입니다.

 

해설

 

 

 

주어진 문자열의 순열을 다 찾아야하므로

순열을 사용해서 extent로 넣었다.

append로 하면 맨 끝에 한개씩만 넣다보니 범위 지정해서 다 넣는 extend로 해야 에러가 안났다.

그리고 해당 튜플값은 [ ('0, '1', '1')] 이렇게 나와버리니 join문을 사용하고 int를 붙여서 0을 없애 11로 만들었다.

 

그리고 result에 중복값을 없애고 나서

for문을 돌리는데, 위에 만들어둔 소수판별 함수를 사용해서 소수일 때마다 카운팅을 한다.

 


고민을 좀만 더 하면 풀 수 있었는데, 제한시간을 30분으로 맞춰놔서 실패했다.

 

소수 판별 문제는 def 함수를 만들어놓고 사용하면서 결국 if 절이나 for문 한 두개 추가하는 유형이다.

앞으로는 저 def 를 소수판별일때마다 그냥 적어놓고 시작해야겠다.