난이도 : D2
문제번호 : 4835
※ 저의 풀이가 무조건적인 정답은 아닙니다.
다른 코드가 좀더 효율적이고 좋을 수 있습니다.
다른사람들의 풀이는 언제나 참고만 하시기 바랍니다.
문제 주소 및 출처입니다.
목차
1. 문제 설명
2. 문제 해석
3. 소스 코드
1. 문제 설명
N개의 양의 정수에서 가장 큰 수와 가장 작은 수의 차이를 출력하시오. |
입력
첫 줄에 테스트 케이스의 수 T가 주어진다. ( 1 ≤ T ≤ 50 ) |
출력
각 줄마다 "#T" (T는 테스트 케이스 번호)를 출력한 뒤, 답을 출력한다. |
예시
입력 | 출력 |
3 5 477162 658880 751280 927930 297191 5 565469 851600 460874 148692 111090 10 784386 279993 982220 996285 614710 992232 195265 359810 919192 158175 |
#1 630739 #2 740510 #3 838110 |
2. 문제풀이
파이썬 Intermediate 1일차 문제입니다. min, max 문제인데요 최대값에서 최솟값을 뺀값을 출력하는 문제입니다. 다른 언어라면 반복문을 이용하거나 다른 라이브러리를 이용하여 구하는데 파이썬은 내장함수를 이용하여 쉽게 구할수 있었습니다. 반복자가 가능한 자료형을 max 혹은 min에 담으면 제일 큰, 혹은 제일 작은 값을 반환합니다.
기초적인 문제라 따로 구현해보고 싶으신분들이 있을수도 있기때문에 따로 계산하는 코드또한 넣겠습니다. |
3. 소스코드
내장함수를 이용한 풀이
1
2
3
4
5
6
|
length = int(input())
for l in range(1, length+1):
t = input()
#입력받은걸 띄어쓰기 기준으로 분리하는데 이걸 int형으로 바꾼다.
n = list(map(int,input().split()))
print("#{} {}".format(l, max(n) - min(n)))
|
그냥 구현
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
|
length = int(input())
for l in range(1, length+1):
t = input()
#입력받은걸 띄어쓰기 기준으로 분리하는데 이걸 int형으로 바꾼다.
n = list(map(int,input().split()))
max_num = min_num = n[0]
for i in range(1, len(n)):
#탐색값이 최대값보다 크면 교체한다.
if n[i] > max_num :
max_num = n[i]
#탐색값이 최솟값보다 작으면 교체한다.
if n[i] < min_num:
min_num = n[i]
print("#{} {}".format(l, max_num - min_num))
|
'코딩테스트 > SWExpertAcademy' 카테고리의 다른 글
부분 집합의 합 Python(SW Expert Academy) (0) | 2020.02.28 |
---|---|
색칠하기 Python(SW Expert Academy) (0) | 2020.02.27 |
구간합 Python(SW Expert Academy) (1) | 2020.02.25 |
숫자카드 Python(SW Expert Academy) (0) | 2020.02.24 |
전기버스 Python(SW Expert Academy) (0) | 2020.02.23 |
댓글