알고리즘 문제를 풀면서 여러가지 내장 함수를 사용하게 된다. 그 중 이런 함수가 있는건 알지만 어떻게 적용되는지, 어떻게 사용해야하는지 정확하게 개념을 잡고자 하나씩 정리하고자 한다.
특히 함수들의 사용 원리를 파악하기 위해서 싸피 알고리즘 주간에는 과제로 내어준 문제들에 대해 max, min, sum, sort 등의 내장 함수를 사용하지 말라고 한다. (물론 개인 공부때는 별개)
알고리즘을 풀면서 (특히 백준) 시간 초과, 메모리 초과, 런타임 에러 등 많은 고려 사항들이 발목을 잡고 있는데, 시간 복잡도 생각하는 방식 등을 제대로 아직은 이해하지 못하고 있어서 그런거 같다.
지금 가장 많이 사용하는 함수
1) input() 함수 → 백준 풀 때는 sys 모듈 import 해서 sys.stdin.readline() 함수를 더 많이 사용 (처리 시간 차이)
2) map(function, iterable) 함수 → 대충 input()할 때 받으면 자료형을 형 변환 시켜주는 함수
3) set() 함수 → 중복 요소를 제거해주는 함수. 교집합, 차집합 등도 구현할 수 있는거로 아는데 나중에 정리해보기
4) strip() 함수 → 양쪽 공백(개행문자 \n 등)을 제거해주는 함수. sys.sdtin.readline()으로 입력 받으면 개행 문자 따라와서 지워줘야 하는 경우 가끔 있음
5) lambda 함수 → lambda 매개변수 : 표현식(리턴값) 의 형태로 사용하고 함수를 한 줄로 만들게 해주는 역할.
6) format 함수 → print 문자열 출력시 변수 값 넣을때 사용. 문자열 변수 f를 넣어서 처리하는 방법도 있음
7) list 함수 → str 타입의 문자(숫자)를 쪼개 리스트로 넣어주는 함수, 예를 들어 list(333)이면 ['3','3','3'] 이렇게 쪼개서 넣어줌
그외 max, min, sum, sort, append, pop 등 굉장히 많은 함수를 사용 중이지만 개인적으로는 위에 있는 함수들을 가장 많이 사용하고 있다고 생각하고, 정확하고 디테일하게 어떤식으로 활용되는지 정리할 필요가 있다고 생각한다.
그외는 함수 뿐만아니라 BFS니 완전탐색이니 하는 알고리즘 풀이 방법도 공부해야한다. (예를 들어 옆에서 완탐 써버리면 돼요! 라고 이야기하면 알고리즘 기술을 몰라서 무슨 말인지 이해를 못하는 경우가 있었다)
SSAFY에 집중하면서 부수적인 자격증, 정보처리기사나 빅데이터 분석기사, SQLD 등도 따고싶어서 준비해야 하니 생각보다 할게 많아져버렸다
조바심 내지말고 하나씩 천천히 해서 기초를 제대로 숙달한 개발자로 성장하고싶다😀
'언어별 개념 정리 > Python' 카테고리의 다른 글
[파이썬] 부분집합을 구하는 방법 (0) | 2023.02.12 |
---|---|
[파이썬] 정렬 알고리즘 - 버블 정렬 & 카운팅 정렬 (0) | 2023.02.12 |
[파이썬] 스택(Stack) 알고리즘 정리 - 계산기 구현하기 (0) | 2023.02.08 |
[파이썬] 문자열(String) 알고리즘 정리 - 보이어 무어(Boyer-moore) 알고리즘 (0) | 2023.02.07 |
[파이썬] 문자열(String) 알고리즘 정리 - 브루트 포스(brute force) (0) | 2023.02.06 |
댓글