본문 바로가기
알고리즘/[백준] Python

[백준] 3052번 나머지

by 코딩맛집 2023. 2. 1.

💡 문제

https://www.acmicpc.net/problem/3052

 

3052번: 나머지

각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.

www.acmicpc.net

 

💡 정답

array = []
value = []
cnt = 0
for _ in range(10):
    array.append(int(input()))

for i in range(10):
    va = array[i] % 42
    value.append(va)

value = set(value)
print(len(value))

 

#숏코딩

value = {int(input())%42 for _ in range(10)}
print(len(value))

 

💡 풀이

문제에서 서로 다른 나머지 값이 몇 개 있는지 출력하라고 하여 중복 제거를 해주는 set 자료구조를 사용하였다.

 

아래는 그냥 튜플로도 해봤는데, 타입에러로 generator가 나와서 generator공부를 해봤다. 링크는 아래에 있다.

# 튜플로 풀어보기
value = (int(input())%42 for _ in range(10))
print(len(value))
# TypeError: object of type 'generator' has no len()
#리스트로 다시 변경해주면 통과
value = (int(input())%42 for _ in range(10))
print(len(list(value)))

https://my-archiver.tistory.com/65

 

[Generator]

Generator란? iterator를 생성해주는 함수 특징 iterable한 순서가 지정됨 순서의 다음 값은 필요에 따라 계산된다.(느슨하게 평가됨) 함수의 내부 로컬 변수를 통해 내부상태가 유지된다. 무한한 순서

my-archiver.tistory.com

'알고리즘 > [백준] Python' 카테고리의 다른 글

[백준] 25206 너의 평점은  (0) 2023.03.16
[백준] 8958번 OX퀴즈  (0) 2023.01.28
[백준] 15649 N과 M(1)  (0) 2023.01.24
[백준] 10866 덱  (0) 2022.10.04