백준 1475번 - 방 번호

Posted by qwlake on July 4, 2020

1475 - 방 번호

1. 개요

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

2. 코드

1
2
3
4
5
6
7
8
9
import sys, math

# N = sys.stdin.readline() # 왜 런타임 에러?..
N = input()
arr = [0,]*10
for i in N:
    arr[int(i)] += 1
arr[6] = math.ceil((arr[6]+arr[9])/2)
print(max(arr[0:9]))

3. 설명

  1. arr 배열에 0부터 9까지의 플라스틱 숫자의 개수를 각각 0으로 초기화한다.
  2. 방 번호에서 숫자 하나씩 떼어 보며, 각 숫자가 몇 개씩 나오는지 arr 배열에 저장한다.
  3. 가장 많이 카운팅된 숫자 만큼의 숫자 플라스틱 세트가 필요하므로 arr 배열에서 가장 많이 카운팅된 숫자가 답이다.
    • 단, 6과 9는 서로 뒤집어 사용할 수 있으므로 서로의 카운팅 숫자를 합산한 후에 반으로 나눈 숫자를 카운팅 개수로 사용한다.

4. 결과

image