이 글은 골든래빗 <코딩 테스트 합격자되기 파이썬편>의 4장까지 써머리입니다.
1. 언어 선택: 잘하는 언어 선택. 파이썬이 제일 무난.
2. 문제 분석: 무작정 코드 작성보다 문제 분석에도 시간을 충분히 사용해야 함
- 문제 쪼개서 분석 (동작 단위로)
- 제약 사항 파악 및 테스트 케이스 추가 연습 좋음
- 입력값 분석(시간복잡도)
- 데이터 흐름 및 구성파악(ex>삽입 삭제 빈번시 heap 자료구조 고려)
- 핵심 키워드 파악 (표 참조)
3. 의사코드(Pseudo Code) 설계: 논리 설명 및 알고리즘 표현을 위한 지침
- 프로그래밍 언어 작성 아님. 자연어. 형식 없음. -> 추상 단계에서 설계 아이디어 좀 더 집중하여 추후 실수 방지.
- 동작 중심으로 작성.(세부구현 아님!)
- 문제해결 순서대로 작성(실제 코드의 주석이 됨)
- 구현 전, 테스트케이스 통과여부 검증
4. 시간복잡도 (Time Complexity): 알고리즘 성능 예측 및 적절 알고리즘 선택 및 설계 可
시간복잡도는 절대 시간이 아니다. (실제 걸리는 시간을 의미하지 않음)
시간복잡도는 최종 값이 도출되기까지의 연산 횟수 추이를 N으로 일반화, 점근적으로 표기한 것(빅오표기법)
그냥 최고차항만 남기면 된다. (지수함수는 우선순위)
계산법: 문제 정의 -> 연산 횟수 측정 -> 시간 복잡도 도출
[책 이외의 내용]
언어 선택은 파이썬이 무난하지만 지원 직종에 따라서 언어가 제한되어있는 경우도 있다.
따라서 본인이 지원하는 업무가 프론트면 JS, 백엔드면 Java, IOS면 Swift 등 이에 대한 대비를 하는게 좋다.
[스터디 및 도서 인증]
화요일 이후 책이 와서 사진 인증
스터디는 코딩테스트를 많이 앞두고 있어서 열심히 할 수밖에 없는 상황이다.
[빈출 문법] (내가 잘 잊는 부분 위주)
list_name[인덱스] = new정보 -> list의 해당 인덱스 내용을 'new정보'로 변환
del list_name[인덱스] -> list의 해당 인덱스 내용 삭제
음수 인덱싱: 양수는 왼쪽에서 0부터 시작하지만 음수는 제일 오른쪽에서 -1 -2 -3.. 이렇게 됨.
길이가 5인 리스트에 대해서 0, 1, 2, 3, 4는 -5, -4, -3, -2, -1 로 동일함
del list_name[키값] -> 특정 dict값 삭제
[책 외 내용 추가] 리스트 값을 인덱스만들어서 dict만들기
from collections import defaultdict
dict = defaultdict(list)
for i, value in enumerate(key_num): # key_num에 대해 index(i)와 value로 나열
dict[value].append(i)
string_name.replacae("대상문자", "바꿀문자") -> 해당 문자열 일괄변경. 바꿀문자를 ""로 입력시 일괄삭제
코딩테스트 구현시 Early retrun(조기반환)은 연산 효율성, 가독성, 예외처리를 위해 중요하다.
'TechStudy > CodingTest' 카테고리의 다른 글
chp8 해시(hash) (1) | 2023.12.13 |
---|---|
chp6 스택(Stack), chp7 큐(Queue) (4) | 2023.12.07 |
백준 1차원 배열 10문제, 2차원 배열 단계 4문제 풀이 (1) | 2023.11.30 |
chp5 배열(Array) (1) | 2023.11.28 |
코딩테스트 공부 1 (0) | 2023.10.19 |