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
'[Programmers]' 카테고리의 다른 글
[프로그래머스 Lv.0][Python] 한 번만 등장한 문자 (0) | 2023.01.20 |
---|---|
[프로그래머스 Lv.0][Python] 모음 제거 (0) | 2023.01.20 |
[프로그래머스 Lv.0][Python] 숨어있는 숫자의 덧셈(1) (0) | 2023.01.20 |
[프로그래머스 Lv.0][Python] 인덱스 바꾸기 (0) | 2023.01.18 |
[프로그래머스 Lv.0][Python] 2차원 만들기 (0) | 2023.01.17 |