소수 찾기 [ Python ] [ 백준 : 1978 ]
2023. 5. 26. 19:11ㆍ알고리즘/백준
풀이 및 회고
팀원들과 함께 페어프로그래밍을 진행했던 문제이다. 나는 count 를 증가시키는 방식을 생각했는데 다른분들 같은 경우는 count 를 빼 주는 방식을 생각하셨다.
문제를 풀면서 list 와 map 으로 만들었을 때와 map 만으로 만드는 방식 두가지를 알게 되었는데 우리가 입력 받을때 굳이 list 를 사용해 받을 필요가 있는가 였다. list 를 사용 안하더라도 map 만으로도 충분히 문제를 구현할 수 있었고 우리는 len() 을 사용해 값을 구하기 때문에 사용한걸로 결론이 났다.
또 range(2, 2) 에 대해서 알게되었는데 우리가 2를 넣어도 중첩된 반복문에 들어가지 않는것 같아서 시작된 의문이었다.
결과적으로 range(2, 2) 두 인자가 같은 수일때는 루프에 들어가지 않는다.
n과 arr로 입력받고 count 변수에 arr의 길이를 저장한다.
반복하며 1인경우 소수이므로 count 를 빼주고, 두번째 반복문 안에서는 소수가 아닌것을 판별해 값을 빼준다.
# 소수 찾기
n = int(input())
arr = list(map(int,input().split()))
count = len(arr)
for i in arr:
if i == 1:
count -= 1
for j in range(2,i):
if i % j == 0:
count -= 1
break
print(count)
# range(2, 2) 면 루프는 0회
# arr = list(map(int,input().split())) 인 경우 len 을 사용할게 아니라면
# arr = map(int,input().split()) 이렇게 사용할수 있다 이렇게 사용할경우 map 객체 가된다.
'''
[1, 3, 5, 7]
1
count = 4
i =3 j = 2
3 % 2 == 0 False
i = 3 j = 3
3 % 3 == 0 True
count -= 1
count = 3
i = 4 j = 2
4 % 2 == 0 True
count -= 1
count = 2
4 % 3 == 0 False
4 % 4 == 0 True
count -= 1
count = 1
i = 5 j = 2
5 % 2 == 0 False
5 % 3 == 0 False
5 % 4 == 0 False
5 % 5 == 0 True
count
'''
간단해보였지만 생각할게 많았고 배울게 많았던 문제였습니다.
'알고리즘 > 백준' 카테고리의 다른 글
요세푸스 문제 0 [ Python ] [ 백준 : 11866 ] (0) | 2023.05.26 |
---|---|
덱 [ Python ] [ 백준 : 10866 ] (0) | 2023.05.26 |
영화감독 숌 [ Python ] [ 백준 : 1436 ] (0) | 2023.05.25 |
거스름돈 [ Python ] [ 백준 : 14916 ] (0) | 2023.05.25 |
최소공배수 [ Python ] [ 백준 : 1934 ] (0) | 2023.05.24 |