Python/백준
🔢 백준 3052 - '나머지' 문제 풀이 가이드 #Python
고발초이이
2024. 6. 3. 14:32
반응형
SMALL
🧩 문제 이해하기
상상해봐요! 여러분에게 10개의 숫자 카드가 있어요. 우리의 임무는:
- 각 카드의 숫자를 42로 나눠보기
- 나눈 후 남은 나머지들 중 서로 다른 것이 몇 개인지 세기
🔧 필요한 파이썬 도구들
1. 📋 리스트 (List)
여러 개의 숫자를 한꺼번에 저장해요.
numbers = [39, 40, 41, 42, 43]
2. 🧮 나머지 연산 (%)
숫자를 나눈 후 남은 값을 구해요.
remainder = 10 % 3 # 결과: 1 (10을 3으로 나누면 1이 남아요)
3. 🎭 집합 (Set)
중복 없이 여러 값을 저장해요.
unique_numbers = {1, 2, 2, 3, 3, 4} # 결과: {1, 2, 3, 4}
🚀 문제 해결 단계
- 10개의 숫자 입력받기
- 각 숫자를 42로 나눈 나머지 구하기
- 서로 다른 나머지의 개수 세기
- 결과 출력하기
💻 파이썬 코드로 구현하기
# 1. 10개의 숫자 입력받기
numbers = [int(input()) for _ in range(10)]
# 2 & 3. 나머지 구하고 중복 제거하기
remainders = {number % 42 for number in numbers}
# 4. 서로 다른 나머지의 개수 출력하기
print(len(remainders))
🧠 코드 설명
[int(input()) for _ in range(10)]
: 10번 반복해서 숫자를 입력받아 리스트로 만들어요.{number % 42 for number in numbers}
: 각 숫자를 42로 나눈 나머지를 구하고, 집합으로 만들어 중복을 제거해요.len(remainders)
: 집합의 크기(서로 다른 나머지의 개수)를 구해요.
🌟 예제로 이해하기
입력 예시:
39
40
41
42
43
44
82
83
84
85
과정 설명:
- 숫자들을 리스트에 저장해요: [39, 40, 41, 42, 43, 44, 82, 83, 84, 85]
- 각 숫자를 42로 나눈 나머지를 구해요:
- 39 % 42 = 39
- 40 % 42 = 40
- 41 % 42 = 41
- 42 % 42 = 0
- 43 % 42 = 1
- 44 % 42 = 2
- 82 % 42 = 40 (이미 있는 값)
- 83 % 42 = 41 (이미 있는 값)
- 84 % 42 = 0 (이미 있는 값)
- 85 % 42 = 1 (이미 있는 값)
- 중복을 제거하면: {39, 40, 41, 0, 1, 2}
- 서로 다른 나머지의 개수: 6
출력 예시:
6
💡 팁
- 집합(set)을 사용하면 자동으로 중복이 제거돼요. 아주 편리하죠?
- 나머지 연산(%)은 주기성을 가진 데이터를 다룰 때 유용해요. 시계, 요일 등을 프로그래밍할 때 자주 사용된답니다!
🎉 마무리
이렇게 하면 10개의 숫자를 42로 나눈 후, 서로 다른 나머지의 개수를 쉽게 구할 수 있어요!
이 문제를 통해 나머지 연산과 집합의 유용성을 배웠네요.
여러분도 이제 숫자의 주기성을 이용한 프로그램을 만들 수 있어요! 🔄🎊
반응형
LIST