Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- geopandas
- 이미지빌드
- 컨테이너
- 알고리즘
- STL
- 데이터입수
- 3d
- 귀여운고래
- docker
- osmnx
- GNN
- 폴더조사
- pyvista
- 3d데이터
- 파이썬
- Python
- 지하철역좌표
- GIS
- geojson
- 도커
- graph
- 그리드분할
- Set
- 패치분할
- python최단거리
- 동명이인찾기
- GCN
- MESH
- 좌표거리
- 도커 레이어
Archives
- Today
- Total
이것저것 기록
[알고리즘] 최댓값, 최댓값 위치를 찾는 알고리즘 본문
* <모두의 알고리즘 with 파이썬>의 문제 02를 정리한 내용입니다.
1. 최댓값을 찾는 알고리즘
1.1 실행 순서
- 리스트의 첫 번째 숫자를 최댓값으로 기억한다.
- 두 번째의 숫자와 첫 번째 숫자를 비교한다.
- 두 번째 숫자가 첫 번째 숫자보다 크다면, 두 번째 숫자를 최댓값으로 바꿔 기억한다.
- 세 번째 숫자 ~ 마지막 숫자까지 위를 반복한다.
- 마지막으로 기억된 숫자가 주어진 숫자 중 최댓값이다.
1.2 예제 코드 (최댓값 찾기)
import random
# 리스트 생성 (총 길이 100, 0~300사이의 랜덤 int로 구성)
temp_list = [random.randint(0,300) for i in range(100)]
def find_max(temp_list):
max_num = temp_list[0] # 입력 리스트의 첫 번째 값을 최댓값으로 기억
n = len(temp_list) # 입력 크기 n
for i in range(1, n): # 1~(n-1)까지 반복
if temp_list[i] > max_num: # 입력 리스트의 i 번째 값이 현재 최댓값보다 크면
max_num = temp_list[i] # 업데이트
return max_num
a = find_max(temp_list)
print(a)
2. 최댓값 위치를 찾는 알고리즘
2.1 실행 순서
- 리스트의 첫 번째 숫자를 최댓값으로 기억하고, 최댓값의 위치(인덱스)를 저장한다.
- 두 번째의 숫자와 첫 번째 숫자를 비교한다.
- 두 번째 숫자가 첫 번째 숫자보다 크다면, 두 번째 숫자의 위치(인덱스)를 저장한다.
- 세 번째 숫자 ~ 마지막 숫자까지 위를 반복한다.
- 마지막으로 위치(인덱스)를 반환한다.
2.2 예제 코드 (최댓값 위치 찾기)
import random
temp_list = [random.randint(0,300) for i in range(100)]
def find_max(temp_list):
max_idx = 0 # 0번째 인덱스를 최댓값의 위치로 설정
n = len(temp_list) # 입력 리스트의 크기만큼 반복
for i in range(1, n):
if temp_list[i] > temp_list[max_idx]:
max_idx = i
return max_idx
a = find_max(temp_list)
print(a)
'코린이 > 코딩 기초 & 알고리즘 공부' 카테고리의 다른 글
[알고리즘] 재귀함수 - 팩토리얼 구하기 (0) | 2021.06.20 |
---|---|
[알고리즘] 동명이인 찾기 알고리즘 (set) (0) | 2021.06.17 |
[알고리즘] 계산 복잡도(시간 복잡도)란? (0) | 2021.06.13 |
[python] exec()을 사용하여 동적 코드 실행하기 (0) | 2021.05.01 |
[python] 파이썬 클래스, 생성자 이해하기 (0) | 2020.11.02 |
Comments