반응형
Baekjoon Online Judge의 5883번 아이폰 9S 문제의 Python 풀이입니다.
5883번: 아이폰 9S
사람 9명이 줄을 서있고 각 사람이 원하는 용량의 크기는 2, 7, 3, 7, 7, 3, 7, 5, 7 이다. 용량 3을 원하는 사람을 줄에서 빼버리면, 줄은 2, 7, 7, 7, 7, 5, 7가 되고, 7을 원하는 사람이 4명이 연속된 구간이
www.acmicpc.net
💻코드
capacities = [int(input()) for _ in range(int(input()))]
# 같은 용량을 원하는 사람들의 연속 구간 중 최대 길이를 저장할 변수
max_length = 0
# 입력받은 용량 중 중복 값 제외
unique = set(capacities)
for capacity in unique:
# 현재 용량을 제외한 리스트 생성
filtered_capacities = [
cap for cap in capacities if cap != capacity]
# 연속된 같은 용량의 최대 길이를 계산하기 위한 변수
current_length = 0
for i in range(len(filtered_capacities)):
# 첫 번째 요소이거나 이전 요소와 같은 용량일 경우 연속 길이 증가
if i == 0 or filtered_capacities[i] == filtered_capacities[i-1]:
current_length += 1
else:
# 연속이 끊긴 경우 길이를 1로 초기화
current_length = 1
# 최대 연속 길이 업데이트
max_length = max(max_length, current_length)
# 가장 긴 연속 구간의 길이 출력
print(max_length)
🧠풀이
이 문제는 애플 스토어에서 아이폰을 구매하려는 사람들의 용량 선택에 따라 같은 용량을 원하는 사람들이 최대한 연속되도록 하여, 그 길이를 최대로 만드는 문제다. 먼저, 입력으로 주어진 사람들의 용량을 리스트로 받고, 각각의 용량에 대해 리스트에서 해당 용량을 제외한 새로운 리스트를 만든다. 그 후, 새로운 리스트에서 연속된 같은 용량의 구간 길이를 계산하여, 그 중 최대값을 찾는다.
🤔느낀 점
아이폰 9S는 존재하지 않는다.

반응형
댓글