[Python] [백준 #3052] 나머지

📝문제

백준 #3052

📝제출한 답

num = []

for i in range(0, 10):
    num.append(int(input()) % 42)

num.sort()

temp = set(num)

print(len(temp))

📝결과

이번 문제는 시간이 오래 걸렸다. 처음부터 어떻게 풀지 바로 감이 잡혀 그리 방향을 잡고 쭉 나아갔는데 중간이 막혀 방황한 것이다.
처음 사고 방식은 이렇다.

  1. 나머지가 0인지 확인.
  2. 0이 아닐 경우 이미 있는 수인지 확인.
  3. Yes: 그대로, No: Count +=1

그랬는데... 변수처리부터 for문까지 도저히 감이 잡히지 않더라. 30분을 앉은 자리에서 고민하고 점심먹으며 고민하고 다시 30분을 플로우차트까지 그려가며 생각하다가 문득 그런 생각이 들었다.

'나 혹시 또 절차처리방식으로 생각하는거 아니야?'

공부했던 파이썬 파일을 뒤져보니 세상에나, 힌트를 얻었다.

set.
순서도 없고 중복도 없는 집합. 생각을 아예 갈아엎기로 했다.

  1. 나머지를 입력 받는다.
  2. 리스트에 넣는다.
  3. set으로 처리하여 중복된 나머지 제거한다.
  4. 길이를 출력한다.

깔끔해졌다. 이렇게 저 결과가 나왔다. 괜히 뿌듯해져서 길게 써봤다. 지금 보니 정렬은 왜 있는 거지.

좋은 웹페이지 즐겨찾기