두 자연수 A와 B가 있을 때, A%B는 A를 B로 나눈 나머지 이다. 예를 들어, 7, 14, 27, 38을 3으로 나눈 나머지는 1, 2, 0, 2이다.
수 10개를 입력받은 뒤, 이를 42로 나눈 나머지를 구한다. 그 다음 서로 다른 값이 몇 개 있는지 출력하는 프로그램을 작성하시오.
1,000
보다 작거나 같고, 음이 아닌 정수이다.42
로 나누었을 때, 서로 다른 나머지가 몇 개 있는지 출력한다.answer = []
for i in range(10):
n = int(input())
data = n % 42
answer.append(data)
print(len(set(answer)))
10
개의 입력을 받고 입력이 들어온 값을 42
로 나눈 나머지를 data
변수에 저장answer
배열에 추가set
을 이용해 중복을 제거하고 answer
배열 요소의 개수를 출력check = [0] * 42
for i in range(10):
n = int(input())
check[n % 42] = 1
# n = 39 → n % 42 = 39 → check[39] = 1
# n = 81 → n % 42 = 39 → check[39] = 1 (이미 체크됨, 변화 없음)
# n = 84 → n % 42 = 0 → check[0] = 1
sum = 0
for i in range(42):
sum += check[i]
print(sum)
42
의 check
배열 생성10
개를 입력받아서 check
배열에 42
로 나눈 나머지의 값의 인덱스를 1
로 변경(1)
의 개수를 합산한 후 출력
- 내가 푼 풀이가 좀 더 직관적인 것 같다.