[백준] 3052번 나머지 / Python

이희령·2024년 10월 30일
0

알고리즘

목록 보기
18/20

문제

두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.


입력

첫째 줄부터 열번째 줄 까지 숫자가 한 줄에 하나씩 주어진다. 이 숫자는 1,000보다 작거나 같고, 음이 아닌 정수이다.


출력

첫째 줄에, 42로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.


예제


나의 풀이

remainder = []
for _ in range(10):
    n = int(input())
    remainder.append(n % 42)

remainder = set(remainder)
print(len(remainder))
  • 각각의 입력 값을 42로 나눈 나머지를 요소로 가지는 리스트를 생성한다.
  • 리스트를 중복 요소를 허용하지 않는 set으로 변환해 중복값을 제거한 후 set 형태 데이터의 길이를 출력한다.

다른 사람의 풀이

arr = []

for i in range(10):
  num = int(input())
  if num % 42 not in arr:
    arr.append(num % 42)
    
print(len(arr))
  • if문을 이용해서 중복값이 존재하지 않는 경우에만 나머지 값을 리스트에 추가한다.

참고

profile
Small Steps make a Big Difference.🚶🏻‍♀️

0개의 댓글