ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Python] 백준 10817번 - 세 수
    IT&개발/Baekjoon 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
    반응형
Designed by Tistory.