728x90
1. 문제
2. 해결
- 소수의 조건을 생각해보았다. 소수는 약수가 2개인 수이다. 소수의 약수는 1과 자기자신인 수인데..
- 주어진 수(num)이 소수임을 확인하기 위해서는 num을 2부터 num-1까지 하나하나 나누어보면서 나머지가 0이 아님을 보이면 되겠다!
- for문 if문을 적절히 사용하고
- cnt를 통해 탐색하고 있는 수(num)이 소수일 때 +1씩 해주면 되겠다 !
3. 코드
n = int(input())
nums = list(map(int,input().split()))
def isPrime(num):
if num < 2:
return False
for i in range(2,num):
if (num % i == 0):
return False
return True
cnt = 0
for num in nums:
if isPrime(num) == True:
cnt+=1
else:
continue
print(cnt)
4. 오답
n = int(input())
nums = list(map(int,input().split()))
for num in nums:
if num < 2:
nums.remove(num)
else:
for i in range(2,num):
if num%i ==0:
nums.remove(num)
print(len(nums))
처음 짜보았던 코드이다.
코드는 짧지만 .. 런타임 에러로 틀려버리고 찾은 다른 대안이 바로 함수 !
함수를 사용하니 런타임에러가 뜨지 않았다 ~
시간을 줄이는 데에도 함수가 사용된다는 것을 꼭 기억하기
'[알고리즘] > BOJ' 카테고리의 다른 글
[백준/Python] 18870번: 좌표 압축 (1) | 2023.03.01 |
---|---|
[백준/Python] 7568번: 덩치 (BruteForce) (0) | 2023.02.28 |
[백준/Python] 8979: 올림픽 (0) | 2023.02.25 |
[백준/Python] 14593번: 2017아주대학교 프로그래밍 경시대회(Large) (0) | 2023.02.24 |
[백준/Python] 15905번: 스텔라(STELLA)가 치킨을 선물했어요 (람다함수 정렬) (0) | 2023.02.24 |