-
백준 파이썬 10818 최소, 최대BOJ 2020. 3. 17. 22:21
내 풀이
12345n = int(input())A = [0 for i in range(n)]A = list(map(int,input().split()))print(min(A), max(A))cs 가로로 입력해야할 때, a,b,c,d,e=list(map(int,input().split())) 이렇게 하기 싫고,
실력도 안 늘 것이며 분명히 편한 방법이 존재할 거라고 생각했기 때문에, 고민하고 찾아다녔다.
고민한 결과, 가로로 많은 수를 입력해야 하는 경우에는 변수를 하나하나 다 선언하기 보다는
입력 개수와 같은 크기의 배열(전부 0넣은 배열)을 선언해주고 다시 입력해주면 된다는 걸 깨달았다.
그리고 map(int,input().split())) 이렇게 받았을때는 map안의 원소가 일회용인 것 같았다.한번 출력하고나면 그 배열 안의 원소가 다 사라져버리는 방식이 아닐까?min하고나서 max하려니까 원소가 없다고 나오던데..고인물식 풀이
123input()*a,=map(int,input().split())print(min(a),max(a))*a,=map( 이렇게 선언하면 a가 배열이 되는건가?
*자체가 배열을 벗기는 작업인데 이런 형식을 쓰려면 반점(,)를 써야되는건가.
https://mingrammer.com/understanding-the-asterisk-of-python/
찾아보니까 여기에 파이썬의 Asterisk(*)에 대한 설명이 있었다.
numbers = [1, 2, 3, 4, 5, 6]
# unpacking의 좌변은 리스트 또는 튜플의 형태를 가져야하므로 단일 unpacking의 경우 *a가 아닌 *a,를 사용
*a, = numbers
# a = [1, 2, 3, 4, 5, 6]
*a, b = numbers
# a = [1, 2, 3, 4, 5]
# b = 6
a, *b, = numbers
# a = 1
# b = [2, 3, 4, 5, 6]
a, *b, c = numbers
# a = 1
# b = [2, 3, 4, 5]
# c = 6
음.. 그래서
*a, = map ( int,input().split() )
이렇게 선언을 해도 a가 입력한 것들의 배열이 된다는 것이구나.
다른 풀이
123input()A=sorted(map(int, input().split()))print(A[0], A[-1])cs 이 분은, 이 문제가 최댓값 최솟값을 물어보는 것에 착안해서,
입력받은 배열을 처음부터 오름차순으로 정리한다음 첫번째원소(최솟값), 마지막원소(최댓값)을 추출했다.
마지막원소는 -1인덱스를 가지는것도 유용하게 쓰도록하자.
'BOJ' 카테고리의 다른 글
백준 파이썬 2747 피보나치 수 (0) 2020.03.17 백준 파이썬 10872 팩토리얼 (0) 2020.03.17 백준 파이썬 11022 A+B - 8 (0) 2020.03.17 백준 파이썬 10950 A+B - 3 (0) 2020.03.17 백준 파이썬 10871 X보다 작은 수 (0) 2020.03.17