본문 바로가기
코딩 테스트/Python_백준

[백준/Python] 3052번 나머지 문제

by 모두의 케빈 2023. 3. 20.

■ 3052번 나머지 문제

출처: 백준 3052번 나머지 문제

■ 코드 풀이

 

아이디어는 다음과 같습니다.

1) 파이썬에서 set은 중복된 값을 자동으로 제거해주는 자료형입니다.

2) 나머지 숫자들을 담을 number_set을 선언해줍니다.

3) 사용자로부터 number에 정수값을 입력 받고, 42로 나눈 나머지 값을 number_set에 추가해줍니다. (add 메서드)

4) number_set의 길이를 출력합니다.

import sys
number_set = set()

for i in range(10):
    number = int(sys.stdin.readline())
    number %= 42
    number_set.add(number)

print(len(number_set))

 

다른 분들은 어떻게 풀었을까요? 아래와 같이 list만으로도 풀 수 있습니다. number 값이 list에 포함되지 않을 경우에만, number 값을 list에 추가해주면 되는데요. 채점을 해보니, 아래 코드는 set을 활용한 코드보다 느린 것 같네요.

파이썬에서 중복 값을 다룰 때는 set을 활용한다는 점을 알아 두시고, 아래처럼 not in을 활용하는 방법도 있다라고 스터디 차원에서 학습하시면 좋을 것 같습니다.

import sys

number_list = []

for i in range(10):
    number= int(sys.stdin.readline())
    number %= 42
    if number not in number_list:
        number_list.append(number)

print(len(number_list))

댓글