문제 설명
한자리 숫자가 적힌 종이 조각이 흩어져있습니다. 흩어진 종이 조각을 붙여 소수를 몇 개 만들 수 있는지 알아내려 합니다.각 종이 조각에 적힌 숫자가 적힌 문자열 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 를 소수판별일때마다 그냥 적어놓고 시작해야겠다.
'코테공부' 카테고리의 다른 글
프로그래머스 46일차 - NULL 처리하기 (0) | 2023.04.03 |
---|---|
프로그래머스 46일차 - 주식가격 (0) | 2023.04.03 |
프로그래머스 45일차 - 입양 시각 구하기(1) (0) | 2023.04.02 |
프로그래머스 45일차 - DATETIME에서 DATE로 형 변환 (0) | 2023.04.02 |
프로그래머스 45일차 - 올바른 괄호 (0) | 2023.04.02 |