파이썬 백준 1475번
실버 5
https://www.acmicpc.net/problem/1475
문제 보기
분류: 구현
문제 풀기
6 과 9 는 같은 번호로 생각하여 한가지로 통일 시킨다.
입력된 방 번호를 리스트에 저장하고 하나씩 순차적으로 빼내어 리스트 sign_ls 의 index 에 맞춰 카운트 한다.
세트 하나 당 6 이 두 개 들어 있기에 sign_ls[6] = (sign_ls[6] + 1) // 2 로 세트의 개수를 맞추고, 최종 저장된 sign_ls 의 value 중 최대값을 출력한다.
코드 보기
import sys
inputdata = sys.stdin.readline
def fnNumberOfSets():
sign_ls = [0] * 9
for i in range(len(n_ls)):
if n_ls[i] == 9:
n_ls[i] = 6
sign_ls[n_ls[i]] += 1
sign_ls[6] = (sign_ls[6] + 1) // 2
print(max(sign_ls))
if __name__ == "__main__":
n_ls = list(map(int, inputdata().strip()))
fnNumberOfSets()
추가 하기
리스트 변경 내용 확인
import sys
inputdata = sys.stdin.readline
def fnNumberOfSets():
sign_ls = [0] * 9
for i in range(len(n_ls)):
if n_ls[i] == 9: ## 9 를 6 으로 변경.
n_ls[i] = 6
sign_ls[n_ls[i]] += 1 ## 필요 숫자를 index 번호에 맞춰 개수 저장.
print(f'n_ls: {n_ls}') # test print
print(f'sign_ls: {sign_ls}') # test print
sign_ls[6] = (sign_ls[6] + 1) // 2 ## 6 또는 9 는 두 개당 한 세트.
print(f'sign_ls: {sign_ls}') # test print
print(max(sign_ls)) ## 필요한 숫자중 가장 많은것 출력.
if __name__ == "__main__":
n_ls = list(map(int, inputdata().strip()))
print(f'n_ls: {n_ls}') # test print
fnNumberOfSets()
# 001122345667899
# n_ls: [0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 9, 9]
# n_ls: [0, 0, 1, 1, 2, 2, 3, 4, 5, 6, 6, 7, 8, 6, 6]
# sign_ls: [2, 2, 2, 1, 1, 1, 4, 1, 1]
# sign_ls: [2, 2, 2, 1, 1, 1, 2, 1, 1]
# 2
'공부하기 > 백준' 카테고리의 다른 글
[Python] 백준 풀기 1453 - 피시방 알바 (0) | 2022.12.28 |
---|---|
[Python] 백준 풀기 5635 - 생일 (0) | 2022.12.27 |
[Python] 백준 풀기 5800 - 성적 통계 (0) | 2022.12.25 |
[Python] 백준 풀기 1316 - 그룹 단어 체커 (0) | 2022.12.24 |
[Python] 백준 풀기 2720 - 세탁소 사장 동혁 (0) | 2022.12.23 |