it 지식/백준 문제 중 자잘한 문법 정리
백준 - 파이썬 3052 - 나머지
곰종
2023. 1. 13. 14:05
문제 내용

문제 예제


처음에는 단순히 n%42가 0이 아닐때만 (나머지가 있을때만) 카운팅 했는데 그렇게 하게되면 문제점이
문제의 내용중 나머지가 서로 다른 값의 개수를 출력하라고 했으므로 중복값이 있어도 count하고
모두가 42의 배수여서 0으로 나누어 떨어지면 카운트가 하나도 되지 않는 문제점이 발생하였다.
내가 푼 방법
|
1
2
3
4
5
6
7
8
|
cnt = []
for i in range(10):
n = int(input())
r = n%42
cnt.append(r)
print(len(set(cnt)))
|
cs |
cnt[] 를 선언하여 연산 후 나머지를 저장할 수 있는 리스트를 선언하고 변수 n 으로 입력받고 연산값을 r에 저장하였다. r에 저장된 값을 cnt[]에 append하였고, 최종적으로 나머지 값들이 cnt[1,2,3,4,4,4,0,0] 이런식으로 저장이 되는데, 마지막에 출력하는건 print(len(set(cnt)))로 set = 중복제거 함수, len = 길이를 나타내는 함수를 사용하여cnt[1,2,3,4,4,4,0,0] -> cnt[1,2,3,4,0] 으로 총 len(8)에서 len(5)로 줄어들게 된다.이로 인해 나머지가 서로 다른 값의 개수를 구할 수 있다.
주요문법 : list, for, range, append, set()
물론 더 좋은 방법이 있을 것 같은데, 아직 코린이라서 더 생각해내지 못했다.....