방 번호
문제설명
정수 N을 입력받아 0~9의 숫자세트를 이용하여
최소 몇개의 세트로 구현이 가능한지 찾는 문제입니다.
소스코드
import math
N = list(input())
count = [0] * 10
for digit in N:
count[int(digit)] += 1
six_nine_count = math.ceil((count[6] + count[9]) / 2)
result = max(max(count[:6] + count[7:9] + count[10:]), six_nine_count)
print(result)
Python 풀이
먼저 N을 정수형식으로 입력받은 뒤
list로 만들어줍니다.
0~9의 배열을 하나 만들어둔 뒤 (Count)
For문을 사용하여 입력받은 값을 하나씩 같은 배열의 칸에 넣습니다.
6, 9는 서로 뒤집어 사용할 수 있기 때문에 별도의 처리를 해야 한다고 판단하여
각 값을 더한 뒤 2로 나눈 몫을 반올림하여 변수에 저장합니다.
이후 저장한 변수 값, 그리고 기존 배열에서의 각각의 값들을 최대 값을 찾습니다.
여기서 최대 값은 필요한 세트의 최소개수와 같습니다.
이후 결과 값으로 저장하여 출력하는 프로그램입니다.
'Algorithm(알고리즘) > Baekjoon(백준)' 카테고리의 다른 글
| BAEKJOON 9093 Python (0) | 2024.11.20 |
|---|---|
| BAEKJOON 2914 Python (1) | 2024.11.19 |
| BAEKJOON 1439 Python (0) | 2024.11.18 |
| BAEKJOON 11005 Python (0) | 2024.11.16 |
| BAEKJOON 10991 Python (0) | 2024.11.16 |
