💡 문제
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 |