나의 풀이
def solution(n):
result =0
a=[]
for k in range(1, n+1):
cnt=0
#print("k=",k)
for i in range(1, k+1):
if k % i ==0:
cnt=cnt+1
#print("i=", i)
#print("cnt=", cnt)
if cnt>=3:
a.append(k)
#print(a)
return len(a)
▶k 가 변할 때 i도 같이 변한다.
▶두 가지 요소가 동시에 변하는 경우에는 이중 for문을 쓰자
▶ k가 선택된 상태에서 i 값이 1부터 k까지 변한다.
▶ 안쪽 for문을 다 돌면 해당 k에 해당하는 약수의 누적갯수가 산출된다.
▶ k에 해당하는 약수의 누적갯수가 3이상일 때만 a리스트에 추가된다.
▶ 최종적으로 a리스트의 길이는 합성수의 갯수가 된다.
'프로그래머스(파이썬) > LV.0(파이썬)' 카테고리의 다른 글
팩토리얼★ - 비교를 반복적으로 하는 경우 while을 적극 활용 (0) | 2022.11.17 |
---|---|
최댓값 만들기(1) - 이중 for문으로 조합사용하기 (0) | 2022.11.17 |
주사위의 개수 - 프로그래머스 (0) | 2022.11.17 |
배열 회전시키기★ 문자열 밀기와 연관~ (0) | 2022.11.16 |
공 던지기 - 인덱스를 순환★하고 싶은 경우 : 연산자 % (0) | 2022.11.16 |