나머지 (백준 3052번)

썹스·2022년 8월 11일
0

문제

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

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

입력

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

출력

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


예제 입력 1

1
2
3
4
5
6
7
8
9
10

예제 출력 1

10
각 수를 42로 나눈 나머지는 1, 2, 3, 4, 5, 6, 7, 8, 9, 10이다.

예제 입력 2

42
84
252
420
840
126
42
84
420
126

예제 출력 2

1
모든 수를 42로 나눈 나머지는 0이다.

예제 입력 3

39
40
41
42
43
44
82
83
84
85

예제 출력 3

6
각 수를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 6개가 있다.


풀이 소스 코드

일반 배열에서 중복된 값은 처리하기 귀찮다. 때문에 세트(Set)을 사용하여 중복된 값을 하나로 묶어 문제를 해결!!

👂참고: 세트(Set)는 같은 타입의 데이터를 순서 없이 하나의 묶음으로 저장하는 형태의 컬렉션 타입이다.

var arr: [Int] = []
var re = Set<Int>()
for i in 0...9{
     arr.append(Int(readLine()!)!)
     re.insert(arr[i]%42)
}

print(re.count)
profile
응애 나 코린이(비트코인X 코딩O)

0개의 댓글