IT&개발/Baekjoon

[Python] 백준 10817번 - 세 수

nimoes._. 2024. 3. 12. 16:00
728x90
반응형

세 수

문제 )

세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.

입력 )

첫째 줄에 세 정수 A, B, C가 공백으로 구분되어 주어진다. (1 ≤ A, B, C ≤ 100)

출력 )

두 번째로 큰 정수를 출력한다.

내 풀이 )

A, B, C = map(int, input().split())

if A == B == C:
    print(A)
else:
    if A == B or A == C:
        second_largest = A
    elif B == C:
        second_largest = B
    else:
        numbers = [A, B, C]
        numbers.sort()
        second_largest = numbers[1]

    print(second_largest)

해설 )

- split() 함수는 입력된 문자열을 공백을 기준으로 나눔

- map(int, ...)은 나눠진 각 문자열을 정수로 변환

 

첫 번째 if 문 :

    - 입력받은 A, B, C가 다 같은 경우 : 다 똑같으므로 A 출력(B, C 아무거나 적어도 상관 x)

    - 아닌 경우(두 번째 if 문으로)

두 번째 if 문:

    - 같은 수가 두 개일 경우 : 같은 두 수가 나머지 수보다 크든 작든 무조건 두 번째로 큰 수 -> second_largest에 저장

    - 세 수 모두 다를 경우 : numbers라는 리스트에 세 수를 넣고 sort() 함수를 사용하여 정렬(오름차순) 

                                       second_largest에 1번 인덱스 값을 저장 (인덱스는 0번부터 시작이므로)

    second_largest 출력

결과 )

 

728x90
반응형