[백준] 1475 방번호

안재영·2022년 3월 2일
0

문제 링크

https://www.acmicpc.net/problem/1475

  • 티어 : Silver 5
  • 시간 제한 : 2 초
  • 메모리 제한 : 128 MB
  • 알고리즘 분류 : 구현

문제

다솜이는 은진이의 옆집에 새로 이사왔다. 다솜이는 자기 방 번호를 예쁜 플라스틱 숫자로 문에 붙이려고 한다.

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

입력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

출력

첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.

예제 입출력


Algorithm

1. 방 번호를 리스트에 담아 입력 받음
2. Dictionary로 각 숫자의 빈도 수를 셈
	-> 6과 9는 하나의 key 사용
3. 입력이 끝난 후 6과 9에 대한 value // 2 + 1 하기
4. 최빈값 출력

Code

N = input()
nums = {}
flag = 0 # 6이나 9가 포함되어있는 경우 1
for i in N:
    if i == '6' or i == '9':
        i = '6'
        flag = 1
    if i not in nums:
        nums[i] = 1
    else:
        nums[i] += 1

# 6과 9의 value는 2로 나눔
if flag == 1:
    if nums['6'] % 2 == 0:
        nums['6'] = nums['6'] // 2
    else:
        nums['6'] = nums['6'] // 2 + 1

print(max(nums.values()))

메모리: 30864 KB
시간: 72 ms

profile
안녕하세요 : )

0개의 댓글

관련 채용 정보