본문 바로가기
백준 풀이

[백준/BOJ] - 1978번 python 풀이

by 반오십 코린이 2022. 11. 20.
728x90


Key Point

 

1. 소수는 1과 자기 자신만을 약수로 가지는 수이다.

-> 소수라면 약수가 2개이다. 소수가 아니면 약수가 2개 초과이다. 

-> 즉, 약수가 2개인 값을 구하면 된다.

 

2. sys.stdin.readline()을 사용하여 시간 복잡도를 줄인다.

 

알게 된 문법

 

append -> 리스트에 추가

clear -> 리스트 비우기

list1.append()
list1.clear()

import sys
N = int(sys.stdin.readline())

list1 = list(map(int, sys.stdin.readline().split()))
list2 = [] # 약수 넣는 리스트
cnt = 0
for i in range(N):
    for j in range(1, list1[i]+1): # 1~요소값
        if list1[i] % j == 0: # 약수 라면
            list2.append(j) # list2에 추가
    if len(list2) == 2: # 소수라면
        cnt += 1 #카운트 추가
    list2.clear() # 요소 하나 탐색 끝나면 clear
print(cnt)
728x90