본문 바로가기

Python/백준

[백준] 3052: 나머지 (Python)

 

 

3052번: 나머지


 

문제 출처:

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

 

 

 

 

코드 공유 (정답)

 

different_leftovers = []
for i in range(10):
    n = int(input())
    leftovers = n%42
    if leftovers not in different_leftovers:
        different_leftovers.append(leftovers)
    else:
        pass
print(len(different_leftovers))

 

이번에도 리스트를 사용해 문제를 풀었다. 우선 서로 다른 나머지를 저장할 리스트를 하나 만들어 주었다. 그리고 10개의 숫자를 받아야 하므로 for문을 사용해 10개의 숫자를 입력받았고, 각각의 숫자를 42로 나눈 나머지 값을 leftovers라는 변수에 각각 입력시켜 주었다. 이제 중요한 파트인데, 어떻게 하면 리스트에 겹치는 숫자가 없게끔 하냐는 것이다. 간단하게 if문으로 해결해 보았다.

만약 이 변수가 리스트에 없는 변수이면, 이 변수를 리스트에 넣어 주는 식을 작성하였다. 그리고 만약 리스트에 있으면, 아무 행동도 안하고 패스하는 것을 택했다. 사실 이걸 떠올리기 어려웠는데, 막상 떠올려 적어 보니 어렵지 않은 논리이다. 이것만 알아내면 이 문제는 정말 쉽게 풀리는 것 같다.

 

항상 문제 풀 때는 핵심을 찾아야 한다. 예전에 백준 풀 때엔 몰랐는데, 이제는 확실하게 알 것 같다.

'Python > 백준' 카테고리의 다른 글

[백준] 1152: 단어의 개수 (Python)  (3) 2025.01.09
[백준] 2577: 숫자의 개수 (Python)  (4) 2025.01.08
[백준] 2562: 최댓값 (Python)  (1) 2025.01.06
[백준] 10818: 최소, 최대 (Python)  (0) 2025.01.06