공부하자

[BOJ/Python] 10818. 최소, 최대 본문

Algorithm/BOJ

[BOJ/Python] 10818. 최소, 최대

dev_riley 2021. 10. 25. 23:00

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

 

<입력>

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

<출력>

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

<예제 입력>

5

20 10 35 30 7 

<예제 출력>

7 35

<나의 코드>

# 1 <400ms>
N = int(input())
data = list(map(int, input().split()))
print(min(data), max(data), end=' ')
# 2. <556ms>
N = int(input())
data = list(map(int, input().split()))

max_d = min_d = data[0]
for i in range(1, N):
    if data[i] > max_d:
        max_d = data[i]
    elif data[i] < min_d:
        min_d = data[i]

print(min_d, max_d, end=' ')
# 3. <704ms>
N = int(input())
data = list(map(int, input().split()))
data.sort()
print(data[0], data[-1], end=' ')

<REVIEW>

이 문제는 쉬운 문제지만 여러 방법이 떠올라서 모두 시도해 보았다. 속도 차이가 궁금했기 때문이다. 예전에는 막연히 코드가 짧으면 계산 속도가 더 빠르지 않을까 싶었는데 그것도 아니란 것도 알게 되었고, 사실 속도가 엄청 큰 차이가 나지 않지만 계산 속도에 영향을 미치는게 무엇일까 생각도 해보았다. 짧은 지식으로 여전히 알 수는 없지만 차근 차근 공부하다 보면 언젠가 알 수 있을거라 생각해 더 열심히 공부해야 겠다는 생각이 들었다.

< 출처>

https://www.acmicpc.net/problem/10818

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ/Python] 1152. 단어의 개수  (0) 2021.12.12
[BOJ/Python] 1157. 단어공부  (0) 2021.12.12
[BOJ/Python] 2562. 최댓값  (0) 2021.10.25
[BOJ/Python] 8979. 올림픽  (0) 2021.09.14
[BOJ/Python] 2804. 크로스워드 만들기  (0) 2021.09.14
Comments