Programming/SWEA

[SWEA 4828].[파이썬 S/W 문제해결 기본] 1일차 - min max

토토모에요 2021. 7. 30. 13:02
728x90
반응형

SW Expert Academy에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.

https://swexpertacademy.com/main/main.do

문제 : N개의 양의 정수에서 가장 큰 수와 가장 작은 수의 차이를 출력하시오.
입력:
첫 줄에 테스트 케이스의 수 T가 주어진다. ( 1 ≤ T ≤ 50 )
각 케이스의 첫 줄에 양수의 개수 N이 주어진다. ( 5 ≤ N ≤ 1000 )
다음 줄에 N개의 양수 ai가 주어진다. ( 1 ≤ ai≤ 1000000 )
[출력]
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다.

input

3
5
477162 658880 751280 927930 297191
5
565469 851600 460874 148692 111090
10
784386 279993 982220 996285 614710 992232 195265 359810 919192 158175

output

#1 630739
#2 740510
#3 838110

오답 code

T=int(input())
L=int(input())

for i in range(1,T+1):
    N_list=[]
    N=map(int,input().split())
    for k in N:
        N_list.append(k)
    print("#%d %d" %(i,(max(N_list)-min(N_list))))
    i+=1  

처음 생각했을때는 문제처럼 출력하기위해 비효율적으로 코드를 짰었습니다. 비슷하게 출력되지만 fail로 뜨고 의미도 없는거 같아서 다시 한번 생각했습니다.

정답 code

T = int(input())
for test_case in range(1, T + 1):

    a=int(input()) 
    b=list(map(int,input().split())) 
    print("#%d %d" %(test_case, max(b)-min(b)))

이렇게 간단하게 for문을 한번만 쓰고 리스트를 따로 입력하지 않고도 간결하게 나타낼 수 있었습니다.

반응형