파이썬 배열 원소의 최댓값 구하기
2022. 2. 4. 16:19ㆍ컴퓨터 사이언스/Algorithm
반응형
배열을 사용하는 기본 알고리즘들
배열 원소의 최댓값 구하기
a = [13, 41, 45]
maximum = a[0]
if a[1] > maximum:
maximum = a[1]
if a[2] > maximum:
maximum = a[2]
print(maximum)
배열 원소의 최댓값을 구하는 함수 구현하기
from typing import Any, Sequence
def max_of(a: Sequence) -> Any:
# 시퀀스형 a 원소의 최댓값을 반환
maximum = a[0]
for i in range(1, len(a)):
if a[i] > maximum:
maximum = a[i]
return maximum
Devide & Conquer
from typing import Any, Sequence
def max_of(a: Sequence) -> Any:
# 시퀀스형 a 원소의 최댓값을 반환
- 뜻은 건네받는 매개변수 a의 자료형은 Sequence이며, 반환하는 것은 임의의 자료형인 Any이다는 것을 의미하는 어노테이션이다.
- 어노테이션은 그저 함수의 매개변수와 반환값을 알려주는 주석이며, 코드에 어떠한 영향도 미치지않음
- Any는 제약이 없는 임의의 자료형을 의미
- Sequence는 시퀀스형을 의미하며, 시퀀스형에는 리스트형, 바이트 배열형, 문자열 형, 튜플 형, 바이트 열 형이있다.
maximum = a[0]
for i in range(1, len(a)):
if a[i] > maximum:
maximum = a[i]
return maximum
- 맨 처음 maximum 변수에는 a[0]의 값이 들어있다.
- for문을 통해서 a[0]부터 -> a[len-1]까지 가장 큰 값을 maximum 변수에 옮겨 담고 반환한다.
배열 원소의 최댓값을 구하는 함수를 이용하여 프로그램 만들기
from typing import Any, Sequence
def max_of(a: Sequence) -> Any:
maximum = a[0]
for i in range(1, len(a)):
if a[i] > maximum:
maximum = a[i]
return maximum
if __name__ == '__main__':
print('배열의 최댓값을 구하는 프로그램 시작!')
num = int(input('원소 수를 입력하세요'))
x = [None] * num
for i in range(num):
x[i] = int(input(f'x[{i}] 값을 입력하세요. :'))
print(f'최댓값은 {max_of(x)}입니다!!')
Devide & Conquer
if __name__ == '__main__':
- 위 if문은 해당 py파일인 algorithm.py를 직접 실행한 경우에만 즉 __name__과 '__main__'이 일치하는 경우에 참이되어서 if문 아래 코드들을 실행하게 된다.
- 만약 다른 py에서 import 한 경우에는 거짓이 되므로 if문이 실행되지 않는다.
num = int(input('원소 수를 입력하세요'))
x = [None] * num
- 입력 받은 원소 수를 num에 입력받고, x라는 리스트를 num의 크기로 만든다.
for i in range(num):
x[i] = int(input(f'x[{i}] 값을 입력하세요. :'))
- 현재 비어있는 리스트 x의 각 인덱스에 값들을 넣어준다.
print(f'최댓값은 {max_of(x)}입니다!!')
- 위 함수를 이용하여, 최댓값을 구하고 그 값을 출력한다.
배열 원소의 최댓값을 구하는 함수를 다른 py에서 import하여 사용하기
from algorithm import max_of
print('End를 입력하면 종료됩니다.')
num = 0
x = []
while True:
s = input(f'x[{num}]에 들어갈 값을 적어주세요 : ')
if s == 'End':
break
x.append(int(s))
num += 1
print(f'최댓값은 {max_of(x)}입니다!')
반응형
'컴퓨터 사이언스 > Algorithm' 카테고리의 다른 글
파이썬 소수 나열하기 (0) | 2022.02.07 |
---|---|
파이썬 배열 역순 정렬, 기수 변환하기 (0) | 2022.02.05 |
동백 // 백준 파이썬 2750번: 수 정렬하기 (0) | 2022.01.10 |
동백 // 백준 파이썬 2750번: 수 정렬하기 (0) | 2022.01.10 |
백준 파이썬 2447: 별찍기 - 10 (0) | 2021.11.01 |