Найдите результат, занявший второе местоPython

Программы на Python
Ответить
Anonymous
 Найдите результат, занявший второе место

Сообщение Anonymous »

В вопросе о том, как найти результат, занявший второе место на Hackerrank.
Учитывая результаты участников студенческого спортивного дня, вам необходимо найти результат, занявший второе место. Вам выставляются баллы. Сохраните их в списке и найдите результат занявшего второе место.
Формат ввода
Первая строка содержит н. Вторая строка содержит массив A[] из n целых чисел, каждое из которых разделено пробелом.
Формат вывода
Печать второе место.
Пример входных данных
5
2 3 6 6 5
Пример вывода
5
Как я понимаю вопрос. Первая строка будет входными данными n, а вторая строка будет входными данными массива A[] размером n.
Я нашел решение:

Код: Выделить всё

if __name__ == '__main__':
n = int(input())
arr = map(int, input().split())
print (sorted(set(arr))[-2])
И еще одно решение в другом источнике:

Код: Выделить всё

if __name__=="__main__":
n = int(input())
arr = map(int, input().split())
arr = list(set(list(arr)))
ar = len(arr)
arr = sorted(arr)
print(arr[ar-2])
Они оба работают хорошо, но я обнаружил, что проблема в том, что размер массива не зависит от ввода n. Например, если мы сделаем
Пример ввода
5
2 3 6 6 5 6 7 8 9 10 11
Тогда результат будет 10
Пример вывода
10
Как мы можем исправить эта проблема с размером массива во второй строке будет значением n в первой строке?

Подробнее здесь: https://stackoverflow.com/questions/684 ... r-up-score
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»