■ 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))
'코딩 테스트 > Python_백준' 카테고리의 다른 글
[백준/Python] 1546번 평균 문제 (0) | 2023.03.21 |
---|---|
[백준/Python] 10811번 바구니 뒤집기 문제 (0) | 2023.03.21 |
[백준/Python] 5597번 과제 안 내신 분..? 문제 (0) | 2023.03.20 |
[백준/Python] 10813번 공 바꾸기 문제 (3) | 2023.03.19 |
[백준/Python] 10810번 공 넣기 문제 (0) | 2023.03.19 |
댓글