본문 바로가기
[Programmers]

[프로그래머스 Lv.0][Python] 합성수 찾기

by Sir교수 2023. 1. 19.
728x90

 

https://school.programmers.co.kr/learn/courses/30/lessons/120846

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

▶문제 설명

 

▶나의 풀이

 

def solution(n):
    array = []
    answer = 0
    count = 0
    for i in range(4, n+1):
        for j in range(1, i+1):
            if i % j == 0:
                array.append(i)
        if array.count(i) >= 3:
            answer += 1
    return answer

 

▶나의 풀이 방법 설명

 

 

# n중에 약수의 개수가 3개 이상인 것은 4부터 가능하다. 
--> range의 범위 4 ~ n+1 까지

# for i in range(4, n+1):
        for j in range(1, i+1):
            if i % j == 0:
                array.append(i)
--> n이하의 수들 중 합성수를 구하기 위해 2중 for문 사용
    i는 n이하의 수, j는 i의 약수의 개수 판별 i % j == 0 일 경우 약수 판별 

# array.append(i)
--> i를 array 배열에 넣어주고 i의 개수를 카운트한다. 
    i의 개수가 3개 이상이면 약수가 3개이상으로 합성수로 판별

# if array.count(i) >= 3:
            answer += 1
--> 약수의 개수가 3개 이상은 합성수 1개로 카운트

 

※ 사용된 문법

 

list.append(요소) : list[-1]에 요소 추가

​list.count(요소) : list안 요소의 개수를 count해서 나타냄

 

728x90