CS/Algorithm & Data Structure

[BOJ][Python] 백준 1475 방 번호

Yeji Heo 2023. 3. 9. 11:41

단순히 카드세트 배열하나 선언,

그 안에 값이 있으면remove하고 다음 번호 체크

없으면 한 세트를 pack에 추가해주고 해당 번호 하나를 뺐다.

특이한 점이라면 값이 6일때는 9가 있나체크(&반대의 경우 체크)를 했단 것이다.

N = list(input())
for i in range(len(N)): N[i]=int(N[i])

pack = []

def addPack():
  pack.extend([0,1,2,3,4,5,6,7,8,9])


cnt = 0
for i in N:
  if i in pack:
    pack.remove(i)
  elif i==6 and 9 in pack:
    pack.remove(9)
  elif i==9 and 6 in pack:
    pack.remove(6)
  else: 
    cnt+=1
    addPack()
    pack.remove(i)
  

print(cnt)

다른 풀이는 보통 해당 숫자를 인덱스로하여 등장 시 추가하는 방식인 거 같다. (혹은 key:value)

각 숫자가 몇 번 등장했는지에(6, 9의 경우는 합쳐서 /2) 집중하는 것이 좋은 풀이인 거 같다.