반응형
https://www.acmicpc.net/problem/10818
10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net
10818번은 입력한 숫자들 중에서 최소, 최대를 찾아 출력하는 문제입니다. 그래서 저는 이중 for문을 사용해서 배열을 오름차순 정렬이 되도록 한 다음 인덱스 0번과 -1번을 출력할 생각이었습니다. 하지만 시간초과로 실패를 하게 되었습니다..
count = int(input())
arrList = list(map(int, input().split()))
for i in range(count):
for j in range(i+1, count):
if(arrList[i] > arrList[j]):
temp = arrList[i]
arrList[i] = arrList[j]
arrList[j] = temp
print(arrList[0], arrList[-1])
그래서 알고리즘 책을 찾아보니 최대, 최소 찾는 문제는 따로 변수를 생성한 뒤 그 값을 비교하면서 그때그때 변수의 값을 변경해주면 되는 아주 간단한 방법이 있었습니다! 그래서 문제에 적용하고 코드를 수정했습니다.
count = int(input())
arrList = list(map(int, input().split()))
max = -1000000
min = 1000000
for i in range(count):
if(max < arrList[i]):
max = arrList[i]
if(min > arrList[i]):
min = arrList[i]
print(min, max)
728x90
'코딩테스트' 카테고리의 다른 글
백준 DP 문제 - 2xN 타일링 만들기 (파이썬) (1) | 2023.11.25 |
---|---|
백준 DP 문제 - 1로 만들기 (파이썬) (0) | 2023.11.25 |
백준 for문 문제 - 날짜 계산하기(파이썬) (0) | 2023.11.25 |
백준 입출력 문제 - len() 활용(파이썬) (1) | 2023.11.25 |
백준 입출력 문제 - EOFError 활용하기(파이썬) (0) | 2023.11.25 |