Python/백준

🔢 백준 3052 - '나머지' 문제 풀이 가이드 #Python

고발초이이 2024. 6. 3. 14:32
반응형
SMALL

🧩 문제 이해하기

상상해봐요! 여러분에게 10개의 숫자 카드가 있어요. 우리의 임무는:

  1. 각 카드의 숫자를 42로 나눠보기
  2. 나눈 후 남은 나머지들 중 서로 다른 것이 몇 개인지 세기

🔧 필요한 파이썬 도구들

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}

🚀 문제 해결 단계

  1. 10개의 숫자 입력받기
  2. 각 숫자를 42로 나눈 나머지 구하기
  3. 서로 다른 나머지의 개수 세기
  4. 결과 출력하기

💻 파이썬 코드로 구현하기

# 1. 10개의 숫자 입력받기
numbers = [int(input()) for _ in range(10)]

# 2 & 3. 나머지 구하고 중복 제거하기
remainders = {number % 42 for number in numbers}

# 4. 서로 다른 나머지의 개수 출력하기
print(len(remainders))

🧠 코드 설명

  1. [int(input()) for _ in range(10)]: 10번 반복해서 숫자를 입력받아 리스트로 만들어요.
  2. {number % 42 for number in numbers}: 각 숫자를 42로 나눈 나머지를 구하고, 집합으로 만들어 중복을 제거해요.
  3. len(remainders): 집합의 크기(서로 다른 나머지의 개수)를 구해요.

🌟 예제로 이해하기

입력 예시:

39
40
41
42
43
44
82
83
84
85

과정 설명:

  1. 숫자들을 리스트에 저장해요: [39, 40, 41, 42, 43, 44, 82, 83, 84, 85]
  2. 각 숫자를 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 (이미 있는 값)
  3. 중복을 제거하면: {39, 40, 41, 0, 1, 2}
  4. 서로 다른 나머지의 개수: 6

출력 예시:

6

💡 팁

  • 집합(set)을 사용하면 자동으로 중복이 제거돼요. 아주 편리하죠?
  • 나머지 연산(%)은 주기성을 가진 데이터를 다룰 때 유용해요. 시계, 요일 등을 프로그래밍할 때 자주 사용된답니다!

🎉 마무리

이렇게 하면 10개의 숫자를 42로 나눈 후, 서로 다른 나머지의 개수를 쉽게 구할 수 있어요!
이 문제를 통해 나머지 연산과 집합의 유용성을 배웠네요.
여러분도 이제 숫자의 주기성을 이용한 프로그램을 만들 수 있어요! 🔄🎊

반응형
LIST