백준 알고리즘 문제 풀이 [Python]

[백준/Python] 3052번 나머지 (1차원 배열)

wlalsu_u 2023. 2. 22. 21:43

3052번 : 나머지 문제

 

 

두 자연수 A와 B가 있을 때, A%B 는 A를 B로 나눈 나머지 이다.

예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2 이다.

 

수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다.

그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.

 

 

 

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

 

3052번: 나머지

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

www.acmicpc.net

 

 


 

풀이 코드

 

array = []

for i in range(10):
    array.append(int(input())%42)

array = set(array)
print(len(array))

 

 

 

array = []

 

 

- 10개의 수를 저장할 빈 리스트를 생성

 

- 리스트는 대괄호 안에 원소를 넣어 초기화하고, 쉼표로 원소를 구분

 

- list_example = [1, 2, 3, 4, 5] 로 사용 가능

 

- 리스트의 인덱스는 0부터 시작하며, 인덱스 값을 괄호 안에 넣어 접근 가능

 

 

 

for _ in range(10):

 

 

- _ (언더바)를 사용하여 반복을 수행하되, 반복을 위한 변수의 값을 무시

 

- for 문에 해당되는 코드를 10번 수행

 

 

 

array.append(int(input())%42)

 

 

- 변수명.append() 메서드를 사용하여 array 리스트에 원소를 하나씩 삽입

 

- 입력값이 한줄씩 들어오므로, for 문 안에서 input() 함수 작성

 

- 문자열로 입력받은 값은 정수형으로 변환하기 위해 int() 함수 사용

 

- % 연산자를 사용하여, 42로 나눈 나머지를 array 리스트에 저장

 

 

 

array = set(array)

 

 

- 집합 자료형 set() 을 사용하여 중복을 제거

 

( 서로 다른 값이 몇 개 있는 지를 출력해야 하므로)

 

 

[집합 자료형 set]

집합 자료형은 리스트 혹은 문자열을 이용해서 만들 수 있음
1) 중복을 허용하지 않음
2) 순서가 없음

 

 

 

print(len(array))

 

 

- len() 함수를 사용하여, array 집합의 원소 개수를 출력

 

 

 

 

 

 

 

 

나동빈 '이것이 코딩 테스트다 with 파이썬' 책을 참고하여 작성하였습니다.

https://www.youtube.com/watch?v=m-9pAwq1o3w&list=PLRx0vPvlEmdAghTr5mXQxGpHjWqSz0dgC