파이썬 언어를 손, 발처럼 쓰고 싶으신가요?
그렇다면 연습, 연습 그리고 또 연습밖에 방법이 없지 않을까 싶습니다.
훌륭한 가르침을 받아도 스스로가 연습하지 않고 숙달시키지 않으면 아무 소용이 없습니다.
프로그래밍 연습 방법 중 하나가 알고리즘 문제 풀이입니다.
연습의 방법 중 좋은 방법이 알고리즘 문제 풀이입니다. 알고리즘 문제풀이는 프로그래밍 사고를 키워주고 문제풀이를 위해서 선택하신 언어의 숙달과 스킬을 향상해줄 겁니다.
알고리즘을 공부하는 법은 이렇습니다.
- 문제를 이해합니다.
- 직접 풀어 봅니다.
- 다른 이들의 코드를 보고 직접 풀어본 코드와 비교합니다.
알고리즘 문제풀이를 하는 유료 강의도 많습니다. 하지만 알고리즘 문제는 직접 풀어보고 고민을 하셔야 됩니다. 알고리즘 문제풀이를 통해서 패스 또는 논 패스가 필요한 것이 아닌 우리는 언어의 숙달과 프로그래밍 사고가 필요한 것입니다.
스스로가 고민하고 고민하고 또 고민하고 직접 타이핑을 해가면서 문제를 해결하는 것이죠.
하루, 이틀 한다고 되는 게 아닙니다. 꾸준한 연습이 필요합니다. 그렇기에 마음의 여유를 갖고 오늘부터 연습을 시작하도록 하겠습니다 :)
프로그래밍을 처음 시작하는데, 알고리즘을 처음 시작하는데 처음부터 손도 못될 문제들을 만나면 곤란하겠죠.
그래서 추천드리는 사이트는 바로 leetcode입니다.
https://leetcode.com/problemset/all/
leetcode는 알고리즘 문제를 제공하는 사이트입니다. 세계적으로 유명한 알고리즘 사이트 중 하나인데 난이도 별로도 정렬을 할 수 있습니다. 문제를 한 문제 한 문제 풀다 보면 우리는 세계 기업들이 특정 수준을 요구하는 프로그래밍 사고도 충족시킬 수 있습니다. 또한 leetcode는 python뿐만 아니라 자바스크립트, 자바, c, c++ 등 무수한 많은 언어로 알고리즘 문제를 풀 수 있도록 지원합니다.
이렇게나 큰 이점을 갖고 있는 알고리즘 문제를 순번 별로 문제들을 풀어보도록 하겠습니다.
그렇게 풀어 본 문제가 1.Two Sum 문제입니다.
문제를 보고 로컬에서 풀어 봅니다.
한 문제를 풀 때 너무 오랜 시간 동안 고민하지 마세요. 1시간, 2시간 스스로가 정한 시간 동안 고민을 하고 문제를 풀어보세요. 로컬에서 돌려보고 됐다 싶으면 leetcode에서 돌리면 내가 작성한 알고리즘에 대해서 판단을 해줍니다.
올바른 답은 없습니다.
단지 더 나은 방법이 있을 뿐입니다. 더 나은 방법이 있으면 배우고 익혀서 사용하시면 됩니다.
하지만 그전에 분명히 자신의 생각이 있어야 되고 직접 문제를 풀어 보셔야 더 많은 걸 배우실 수 있습니다.
그래야 내가 생각한 방법과 더 나은 방법을 비교를 해봐야 성장할 수 있기 때문입니다.
(더 나은 방법을 배우셨다면 스스로 복기를 다시 해보세요)
from typing import List
class Solution:
def twoSum(self, nums: List[int], target: int) -> List[int]:
idx = 0
for i in nums:
find_data = target - i
idx += 1
if find_data in nums[idx:]:
return [idx-1, nums[idx:].index(find_data)+idx]
if __name__ == '__main__':
print(Solution().twoSum([2, 7, 11, 15], 9))
위의 문제는 로컬에서 풀면서 작성한 코드입니다.
1문제를 풀면서도 for문, if 문을 사용하고 리스트의 index를 이런 방식으로 찾을 수 있구나 배웁니다.
또한 프로그래밍 사고를 배우게 되는 것이죠.
한 문제, 한 문제 문제풀이가 누적이 된다면 분명 엄청난 파워를 갖게 되리라 믿습니다.
오늘부터 알고리즘 문제풀이를 시작해보세요 :)
감사합니다.
'개발 이야기 > python 독학' 카테고리의 다른 글
파이썬으로 호출하는 키움 주식 API (1) | 2020.03.12 |
---|---|
파이썬으로 주식 트레이딩을 활용하자 (퀀트의 시작) (0) | 2020.03.10 |
한 페이지로 보는 꼭 챙겨야 할 파이썬 기초와 예제 #2 (파이썬 데이터, 클래스) (0) | 2020.02.23 |
한 페이지로 보는 꼭 챙겨야 할 파이썬 기초와 예제 #1 (변수, 조건문, 반복문) (0) | 2020.02.22 |
파이썬 독학 - 환경 세팅(파이썬 설치, 가상환경 구성) (2) | 2020.02.21 |