https://www.acmicpc.net/problem/1475
문제 다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.
다솜이의 옆집에서는 플라스틱 숫자를 한 세트로 판다. 한 세트에는 0번부터 9번까지 숫자가 하나씩 들어있다. 다솜이의 방 번호가 주어졌을 때, 필요한 세트의 개수의 최솟값을 출력하시오. (6은 9를 뒤집어서 이용할 수 있고, 9는 6을 뒤집어서 이용할 수 있다.)
어렵게 생각하면 한없이 어려워졌는데 조금만 고민해보니 쉽게 풀 수 있었다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
num_list = input()
number = [0]*10
for i in range(len(num_list)):
check = int(num_list[i])
if check == 9:
if number[9]>number[6]:
number[6]+=1
continue
elif check == 6:
if number[6]>number[9]:
number[9]+=1
continue
number[check]+=1
print(max(number))
결국 숫자를 보았을때 각 숫자가 몇번 쓰였는지 구하고 그중에서 가장 큰 값이 필요한 판의 숫자가 된다.
다만 조건에서 9와 6은 교차로 사용할 수 있다고 했으니 조건으로 9를 사용할때 9와 6의 숫자를 비교하고 더 작은 쪽의 숫자를 올려준다. 그게 아니라면 원래 숫자만 올린다.
그리고 max로 리스트의 가장 큰 값을 반환하면 끝!
Comments powered by Disqus.