Skip to content

Latest commit

 

History

History
34 lines (26 loc) · 1.69 KB

풀이_1475.md

File metadata and controls

34 lines (26 loc) · 1.69 KB

🐝 백준 1475번(방 번호)

  • Date : 2021.02.26(금)
  • Time : 15분

문제

  • 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다. 다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)



코드 풀이

n = list(map(int, str(input())))
num_set = {0: 0, 1: 0, 2: 0, 3: 0, 4: 0, 5: 0, 6: 0, 7: 0, 8: 0, 9: 0}

for i in n:
    if i == 9:
        num_set[6] += 1
    else :
        num_set[i] += 1

: dict 을 이용해서 문제를 풀었다. 다솜이의 방 번호를 하나씩 불러서 특정 숫자에 값을 더해준다. 여기서 6과 9는 서로가 되어 줄 수 있기 때문에 하나의 숫자로 몰아서 값을 넣어줫다. i==6일 때 num_set[9]에 +1을 해줘도 같다.

if num_set[6] % 2 == 1:
    num_set[6] = num_set[6] // 2 + 1
else :
    num_set[6] = num_set[6] // 2

print(max(num_set.values()))

: 이제 숫자를 다 넣었다면 세트의 숫자를 세야한다. 근데 여기서 6과 9는 서로가 되어줄 수 있어서 6에 9와 6을 모두 몰아서 넣은 상태이다. 그렇기 때문에 6의 갯수를 나누기 2(올림) 해줘야한다. 올림을 해주기 위해 홀수이면 +1을 더 해줬다. 나누기 2를 해주면 9의 몫을 덜어내줬다고 생각하면된다! 그 다음에 num_set의 값중에서 최대인 값이 세트의 수가 된다.