- 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의 값중에서 최대인 값이 세트의 수가 된다.