강의링크 - https://school.programmers.co.kr/learn/courses/57
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
1) 강의 개요
첫 강의에서는 자료구조와 알고리즘을 왜 배워야하는지 기본적인 사항부터 짚어보고, 앞으로 학습 내용을 이해하는 데에 계속 도움을 받을 프로그래머스 실습 기능을 체험해보도록 하겠습니다.
이 강의에서는, 기본적인 Python 프로그래밍에는 어느 정도 익숙한 상태로 수강하신다고 가정합니다. '익숙하다' 는 것의 정의는 사람마다 다를 수 있지만, 이 강의에서는 기초 자료형인 리스트 (list) 와 사전 (dictionary), 그리고 클래스 (class) 를 이용한 코드가 어떻게 동작하는지를 이해하고 있으면 수강할 수 있도록 내용을 구성했습니다.
2) “자료구조”라는 것은 도대체 왜 알아야 하는 것인가?
import time
n = int(input("Number of elements: "))
haystack = [k for k in range(n)]
print("Searching for the maximum value...")
ts = time.time()
maximum = max(haystack)
elapsed = time.time() - ts
print("Maximum element = %d, Elapsed time = %.2f" % (maximum, elapsed))
- 강사님 컴퓨터 기준, 1만 개의 숫자 중에서 최댓값을 찾는 소요 시간(elapsed time)은 0.00초. 그러나 숫자가 많아질수록 경과 시간도 커지고, 1억 개의 숫자 중에서 최댓값 찾으려 하기만 해도 3.13초의 시간이 경과.
즉, 파이썬의 내장 함수로부터 최댓값을 찾을 때는, 원소 개수에 비례해서 많은 시간이 소요됨
3) 알고리즘이란?
- 사전적 정의 : 어떤 문제를 해결하기 위한 절차, 방법, 명령어들의 집합
- 프로그래밍 : 주어진 문제의 해결을 위한 자료구조와 연산 방법에 대한 선택
- 즉, 해결하고자 하는 문제에 따라(응용 종류와 범위에 따라) 최적의 해법은 서로 다르다! → 이 선택을 어떻게 해야 하느냐를 알기 위해 자료구조를 이해해야 함
4) 과제 : 프로그래머스 테스트에 익숙해지기
def solution(x):
answer = 0
answer = x[0] + x[len(x)-1]
return answer
저는 인덱스를 통해 첫 원소를 x[0]으로, 마지막 원소는 길이함수 len()를 이용하되 인덱스 시작이 0이므로 마지막 인덱스에서 1을 빼서 x[len(x)-1]을 합하게 되었습니다.
def solution(x):
answer = 0
answer = x[0]+x[-1]
return answer
def solution(x):
answer = x[0] + x.pop()
return answer
문제를 풀게 되면 다른 사람들의 풀이를 볼 수 있는데, 마지막 원소를 [-1] 인덱스로 표현한 모습이나 리스트의 원소 하나를 꺼내는 함수인 pop() 함수를 사용하여 마지막 원소를 출력한 부분이 인상적이었습니다.
다음 강의 : 2강 선형 배열 (Linear Arrays) https://lbsdatastat.tistory.com/197
'데이터 [Data] > Python' 카테고리의 다른 글
자료구조와 알고리즘 2 - 선형 배열 <'어서와! 자료구조와 알고리즘은 처음이지?' Python 강의 정리> (0) | 2022.07.11 |
---|---|
온라인 서점별 도서비교 웹사이트 - 인공지능 개발자 양성과정 Python 프로젝트 (0) | 2021.11.13 |
[스크랩] 파이썬은 왜 데이터 분석에 많이 쓰일까? (0) | 2021.07.14 |
Python 교육 10일차: pandas, matplotlib, seaborn (0) | 2021.07.07 |
Python 교육 9일차: NumPy, pandas 라이브러리 (0) | 2021.07.06 |
댓글