def solution(nums):
answer = 0
li = set()
for i in range(len(nums)-2) :
for j in range(i+1, len(nums)-1) :
for k in range(j+1, len(nums)) :
li.add(nums[i] + nums[j] + nums[k])
li = list(li)
li.sort(reverse=True)
for idx in li :
cnt = 0
for i in range(idx-1, 1, -1) :
if idx % i == 0 :
cnt += 1
break
if cnt == 0 :
answer += 1
return answer
?? 분명 테케는 다 맞았잔ㅎ아.... 왜 배신해
라며 한참 헤매다가 드디어 틀렸던 이유를 알아냄
"nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수"
ex) 1, 2, 3, 4, 5, 6, 7 가 주어질 경우
소수 11이 되는 [1, 3, 7] 의 경우와 [1, 4, 6] 의 경우는 서로 다른 경우이기 때문에
따로따로 카운트 되어야 함 ....
그래서 set() 으로 설정해두면 안 됐던거임....ㅜㅜㅜㅜㅜ 바보다 짅자
def solution(nums):
answer = 0
li = []
for i in range(len(nums)-2) :
for j in range(i+1, len(nums)-1) :
for k in range(j+1, len(nums)) :
li.append(nums[i] + nums[j] + nums[k])
li.sort(reverse=True)
for idx in li :
cnt = 0
for i in range(idx-1, 1, -1) :
if idx % i == 0 :
cnt += 1
break
if cnt == 0 :
answer += 1
return answer
문제를 잘 읽자 .. ^-^
'알고리즘' 카테고리의 다른 글
[프로그래머스 Lv3] 베스트앨범 (Python) (0) | 2022.07.28 |
---|---|
[프로그래머스 Lv2] 예상 대진표 (Python) (0) | 2022.07.27 |
[프로그래머스 Lv1] 예산 (Python) (0) | 2022.07.02 |
[프로그래머스 Lv2] 기능개발 (Python) (0) | 2022.07.02 |
[프로그래머스 Lv2] 카펫 (Python) (0) | 2022.07.02 |