한때 이것저것 코딩이나 ai 등 많이했으나 회사 들어오고 나서 코딩을 안해서 머리가 돌이되었음. 복습 차원에서 cos pro 1급이라는 자격증을 준비해보기로 함.
시간관리 매우중요 : 유형 순서대로 안나오니 빈칸 => 한줄 => 함수짜기 순으로 꼭! 직접 찾아서!
진짜 그 칸만 채우면됨 : 그러나 전반적으로 함수 다 이해해야한다고 생각하자! 그래야만 맞을 수 있는 문제도 꽤있음
1) "다음과 같이 프로그램 구조를 작성했습니다"
2) 저 말 없으면 나라면 어떻게 했을지 (위에처럼) 짜여있는 코드 참고하면서 어느정도 해둔다음에 빈칸채워야함. 날먹하려하지말고..(1차 - 문제7) 괜히 생각이 갇힌다
- 일단 함수매칭을 먼저하고 => 어려우면 주어진 함수들 def 들만큼은 무조건 이해한다, 왜이렇게짰을까, 실제예시를 머릿속에 굴려보는 등 해서 주어진 def들을 무조건 이해시켜야함
- 빼박 이건 무조건 그대로 넣으면 될 각인거 2개, 바꿔야하는 유형은 1개 정도 될거라는 믿음 (3개다 바꾸는 유형은 아닐거라는 믿음)
- 찍기 팁 : 빼박 그대로일 각 2개 정하고 나머지 1개를 max min //2 % 등등 변형해서 무지성 넣어보기
3) 클래스
그렇긴하지만 class는 샘플 문제 대충 정리만 하기 (이미지 캡처수준)
- 이것도 다른거 고칠필요 없이 ㄹㅇ 딱! 한줄만 고치면 된다 : 근데, 우선 실행을 먼저 돌린다
- 딱 그 줄만 오류이기 때문에 어디가 틀린지 확정을 한 후 거기만 냅다 수정한단 마인드면 어려워도 쉬워진다
1) 답이 틀린경우 : 전반적인 생각필요
2) 아예 오류가 나는경우 => 이게 좋다! : 해당 코드가 고쳐야될 코드라 좋다
### 0. 기타정리
1) dict = {'a' : 1, 'b' : 2} -> dict['a'] 이런식으로 딕셔너리 활용가능. ()말고 리스트처럼 []하면됨
2) 최댓값, 최솟값 찾는 flow : 특정 값보다 크거나 작으면 max, min 갱신해나가는 플로우..
3) 함수 def, def 구분해서 여러개 작성 괜찮다. 그래야 수정하기도 좋고 눈에 잘 보임. (하위함수때는 인자에 주의하기 인자가 여러개 들어가야한다거나)
4) 문자열 : 있냐 없냐는 in, not in으로 짜면됨, box = [] & append처럼 box ='' & +=
### 1. for문 등 함수작성시 팁
-> 하나의 예시에 대해서 주석으로 아예 값을 써가면서 하면 인덱스 값 등 훨씬 안헷갈리고 짜기좋다 : 3 - 0 / 4 -1 / 5 - 2 => "아, arr[k-1+i] - arr[i] 로 짤수있겠구나!"
-> 그냥 for문 돌리는게 나을지 index로 접근하는게 나을지
box = ['a','b','c','d']
"for i in range(box)" VS "for idx in range(len(box))"
### 2. 조건문 짤때 주의사항
- 값에 대한 갱신, 초기화는 어떻게 할지
- 조건파악 어떻게 할지 - '무시'(continue)
=> continue는 값 반영되는 코드를 구분해서 생략안되게 주의해서 짜야함
### 3. '조합'유형
# 1) 조합 쓰기 -> '시간' 이슈 가능!!
from itertools import combinations
cases = list(combinations(array, k)) # list 꼭 써야함
# 2) 어레이 '정렬'먼저!
array.sort() # -> 그 후에 선형탐색 한다고 생각하면됨