CODING TEST/Beakjoon
[백준 / 3052 / python] 나머지
더라
2023. 9. 23. 14:08
728x90
문제

문제 보러 가기
3052번: 나머지
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.
www.acmicpc.net
입출력 조건
입력 | 0< x < 1,001 (총 10번 한 숫자씩) |
출력 | 서로 다른 나머지의 총 개수 |
풀이
풀이 1번 - 배열과 if문
arr=[]
for i in range(10):
a = int(input())
remainder = a%42
if remainder not in arr:
arr.append(remainder)
print(len(arr))
1) 빈 배열을 만든다
2) 총 10번 입력을 받는다.
3) 입력 받은 수를 42로 나눈 뒤 remainder에 나머지 값을 저장한다.
4) 배열 arr에 remainder의 값이 없다면 해당 값을 arr배열에 추가한다.
5) 배열의 길이를 출력한다.

문제의 포인트는 '서로 다른 나머지'의 개수이다. 배열에 중복되지 않게 담아 배열의 개수를 출력하면된다.
이 문제의 포인트를 위해 배열대신 세트를 사용할 수도 있다.(풀이 2번)
풀이 2번 - set()
remainder_set=set()
for i in range(10):
a = int(input())
remainder = a%42
remainder_set.add(remainder)
print(len(remainder_set))
if문을 사용하지 않고, 자료구조를 배열대신 set()을 사용했다.
set() 자료구조는 기본적으로 중복을 허용하지 않는다. 따라서 같은 값을 여러번 넣어도 실제로 한 번만 저장된다.
같은 나머지를 넣을 경우 1번만 기록된다.

728x90