티스토리 뷰

반응형

백준 3052번 나머지

 

알고리즘 분류: 수학, 사칙연산

 

링크: https://www.acmicpc.net/problem/3052

 

 

3052번: 나머지

39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다.

www.acmicpc.net

문제

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

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

입력

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

출력

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

 

힌트

39, 40, 41, 42, 43, 44, 82, 83, 84, 85를 42로 나눈 나머지는 39, 40, 41, 0, 1, 2, 40, 41, 0, 1이다. 서로 다른 값은 모두 6개가 있다.

 

 

문제 파악

 

총 10줄의 입력값이 주어진다.

 

이 입력값들을 42로 나눈 서로 다른 나머지의 개수를 구하는 문제이다.

 

친절히 힌트까지 주어지는 문제인데 나머지가 같으면 1개로 치라는 말인것같다.

 

 

코드

 

일단 입력값으로 주어지는 수들을 num_list라는 리스트에 담았다.

 

그리고 그 num_list의 인덱스들을 각각 42로 나눈 나머지들을 remain_list에 담았다.

 

count_dict라는 변수명을 가진 딕셔너리를 만들고 remain_list의 인덱스가 count_dict에 들어있지 않다면

 

count_dict에 remain_list[k]를 넣어주고 count를 1씩 더해준다.

 

이런식으로 하면 중복되는 나머지가 나왔을 때 이미 딕셔너리에 있기때문에 count가 올라가지 않고

 

그대로 패스하게된다.

 

마지막으로 count를 출력해주면 된다.

반응형
댓글
반응형
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
글 보관함