[python] 백준 2562번 최댓값 (ft.두번째 최댓값의 값,인덱스 찾기)

도리·2025년 2월 24일

문제

내 코드

A = list(map(int,input().strip().split()))[:9]

max_A = max(A)
A.remove(max_A)

max2_A = max(A)
print(A.index(max2_A)+1)

최댓값과, 두번째 최댓값의 인덱스값을 추출하라는 줄 알았다...

1.A에서 max_A값을 지우고 A.index(max2_A)를 하면 원하는 답이 나오지 않는다.
왜냐면 이미 지워져서 인덱스 값이 달라지기 때문...

  1. 최댓값이 중복인경우 !!! 없는 값의 인덱스를 반환하게 되므로 틀림.

어쨌든 틀림

두번째 수정

A = list(map(int,input().strip().split()))[:9]

A_copy = A.copy() 

max_A = max(A)
for i in A_copy:
    if i == max_A:
        A_copy.remove(i)

max2_A = max(A_copy)
print(A.index(max2_A)+1)

이래도 틀림.

정답 코드

A = [int(input()) for _ in range(9)]

max_A = max(A)

print(max_A)
print(A.index(max_A)+1)
    1. 일단 입력부터 틀림.
    • 한줄에 모두 입력받는게 아님...
    1. 두번째 최댓값의 인덱스가 아님..
A = list(map(int, input().strip().split()))

max_val = max(A)
# 최대값과 다른 값들만 필터링
filtered = [x for x in A if x != max_val]


second_max = max(filtered)
second_max_index = A.index(second_max)  # 첫 번째 등장하는 인덱스
print(second_max, second_max_index + 1)  # 인덱스가 1부터 시작하는 경우
profile
인공지능응용학과 졸업

0개의 댓글