YUYANE

Python/ HackerRank Find the Runner-Up Score! 본문

Programming Theory/Algorithm

Python/ HackerRank Find the Runner-Up Score!

YUYA 2021. 1. 11. 17:22

문제

 

www.hackerrank.com/challenges/find-second-maximum-number-in-a-list/problem?h_r=next-challenge&h_v=zen

 

Find the Runner-Up Score! | HackerRank

For a given list of numbers, find the second largest number.

www.hackerrank.com

 

 

해결 과정 & 코드

 

1) n과 배열을 이룰 코드(str)를 입력 받는다.

n = int(input())
str = input().split(' ')

 

2) 배열 요소의 크기를 비교하기 위해 모든 요소를 정수로 바꾸어준다. 

 

/ 배열에 있는 구성요소들을 int로 바꾸어주는 함수

def make_int(str):
    for i in range(len(str)):
        str[i] = int(str[i])
make_int(str)

 

3) 배열에서 가장 큰 숫자를 찾아 삭제한다.

 

/ 배열에서 가장 큰 숫자를 찾는 함수

def find_biggest(str):
    biggest = 0
    if len(str) > 1:
        for i in range(1, len(str)):
            if i == 1:
                if str[i] >= str[i-1]:
                    biggest = str[i]
                else:
                    biggest = str[i-1]
            else:
                if str[i] >= biggest:
                    biggest = str[i]
                else:
                    continue
    else:
        biggest = str[0]
    return biggest

/ 배열에서 가장 큰 숫자를 삭제하는 함수

def remove_biggest(str):
    biggest = find_biggest(str)
    str_new = [x for x in str if x != biggest]
    return str_new

 

4) 다시 배열에서 가장 큰 숫자를 찾으면 문제 해결!

print(find_biggest(str))

 

 

전체 코드

n = int(input())
str = input().split(' ')


def make_int(str):
    for i in range(len(str)):
        str[i] = int(str[i])


def find_biggest(str):
    biggest = 0
    if len(str) > 1:
        for i in range(1, len(str)):
            if i == 1:
                if str[i] >= str[i-1]:
                    biggest = str[i]
                else:
                    biggest = str[i-1]
            else:
                if str[i] >= biggest:
                    biggest = str[i]
                else:
                    continue
    else:
        biggest = str[0]
    return biggest


def remove_biggest(str):
    biggest = find_biggest(str)
    str_new = [x for x in str if x != biggest]
    return str_new


make_int(str)
str = remove_biggest(str)
print(find_biggest(str))

 

'Programming Theory > Algorithm' 카테고리의 다른 글

알고리즘 / 계수 정렬  (0) 2021.01.25
알고리즘 / 삽입 정렬  (0) 2021.01.23
알고리즘 / 선택 정렬  (0) 2021.01.22
Python/ HackerRank Detect Floating  (0) 2021.01.06
JAVA / charAt() (백준 11720 자바)  (0) 2020.11.26
Comments