-
문제
1475번: 방 번호
첫째 줄에 다솜이의 방 번호 N이 주어진다. N은 1,000,000보다 작거나 같은 자연수이다.
www.acmicpc.net
문제 해석
접근 방법
숫자 세트는 방 번호 중 중복된 숫자의 최대 개수만큼 필요합니다.
ex) 112312 : 1이 3번 중복되므로 세트 3개 필요
단, 6, 9는 숫자 구분 없이 두 개 당 한 세트만 사용하면 됩니다.
따라서 제시된 방번호 N에 6 또는 9가 포함되어있을 경우 숫자 한 개당 세트 0.5개로 계산해 준 후 올림 처리를 해줍니다.
ex) 계산한 세트 수가 3.5개인 경우 > 최소 4개를 사야 충족할 수 있음
이번 문제 풀이에서는 올림 처리를 위해 ceil 함수를 사용했습니다.
- ceil() : 실수를 올림해 정수 타입인 int로 반환하는 함수
전체 코드
from sys import stdin from math import ceil char_arr = list(stdin.readline().rstrip()) cnt_arr = [0] * 9 # 인덱스에 해당하는 번호의 총 개수를 담아줄 배열 for c in char_arr: if c == "6" or c == "9": # 6 또는 9일 때 0.5개 추가 cnt_arr[6] += 0.5 else: # 나머지 경우는 1개 추가 cnt_arr[int(c)] += 1 ans = ceil(max(cnt_arr)) # 세트 개수 올림 처리 print(ans)'Algorithm > Python' 카테고리의 다른 글
[BOJ] 백준 2217 로프 (Python) + enumerate (1) 2023.08.22 [BOJ] 백준 2457 공주님의 정원 (Python) (1) 2023.08.22 [BOJ] 백준 1520 내리막 길 (Python) (0) 2023.08.21 [BOJ] 백준 5397 키로거 (Python) (1) 2023.08.20 [BOJ] 백준 3273 두 수의 합 (Python) (2) 2023.08.19