세미나 - 알고리즘 특강
씨큐브 코딩
민코딩
코딩테스트
코테 알고리즘 종류
- Dijkstra
- Sliding Window / Two Point 등등
현업에서 중요한지?
현업에는 XX
Hash/String Parsing/Queue 정도만..
그럼 왜 하는지?
- 기본기가 능숙한 지 테스트
- 코테 문제를 잘 푼다 = 디버깅이 빠르다!
현업과 코테 알고리즘
코테 잘하는 사람이 현업에 능숙할 가능성 높음
코딩테스트 회사
1. 포털
2. 제조
3. 금융
4. SI
5. 정보보안
6. 게임
코딩테스트의 알고리즘
- 영상처리
- 메모리 관리
- 프로세스 관리
- 언어인식
- 사물인식
- 데이터관리
P.S
알고리즘 실력을 빠르게 올리기 위해
종만북?
- 프로그래밍 대회에서 배우는 알고리즘 문제 해결 정략
-> 대회 나가는 수준까지 도달한 사람
중수 이상이 될 때
아닐때
능숙함의 차이
- 여러 알고리즘이 섞여 있는 응용 문제
data처리 -> 분석
--- 이미 알고 있으니까 그냥 알고 있는 거에서 쉽게 select
=> 내가 확인해서 검증할 단계가 엉청 줄어듦
그냥 모델 같은 거 선정만 하지 그 선정해서 세팅 어떻게 할 지 토의같은 거 안하죠?
전처리 -> 모델 -> 시각화 -> 분석
문제 풀다 막히면?
'건들지 못하겠다'
'무엇을 요구하는지도 모르겠다'
-> 답을 보지 말고 쉬운 문제 먼저 하자
목표로 해야하는 수준
- 같은 문제를 풀 때 소모하는 에너지
고인물 - 능숙함 - 이해함 - 모름
쉬운 문제 vs 어려운 문제
- 중수 이상 아니면 쉬운 문제를 더 우선적으로 많이 풀어야 한다.
- 기출은 시험에 다가올 때
(참고)
알고리즘 문제에선 어떤 경우도 있는가?
-> 이런 유형의 문제를 니가 안풀어봤으면 넌 틀리는거야?
[추천 공부 방법] Daily 과제
- 매일 쉬운 문제 두 문제 씩
- 좋은 컨디션 - 많이 풀자
(참고)
ssafy
1달동안 수업에서 풀었던 문제
=> 400문제 가량 => 1달 쉬면 다 까먹음
프로그래밍 언어 무엇이 좋을까?
- ps쪽에선 제일 좋은 언어
=> C or C++ => 얘네가 제일 빠르다. - 애초에 대회에선 C,C++을 중심으로 문제를 출제
대회 같은 경우는 C,C++이 표준이라서
C,C++ 위주로 문제가 다 출제
=> 실제 기업 코테도 결국 대회를 base로 문제를 출제 => C,C++ - 하지만 C,C++이 중요하기보단 어떤 언어라도 결국 코드를 잘 작성하느냐! <- 기업에서 묻는 것
=> 언어는 상관이 없다.
코딩실력이 괜찮으면 무엇이든 괜찮다
- Python도 괜찮음
알고리즘 스터디
- 사람 운이 좋아야합니다
=> 혼자 하는 것을 추천
2화
코테를 왜 보나요?
- 코딩기본기 / 문제 해결력
못하면 정말 답답함 - 타 Spec 대비
인적성 보다 유용
토익 보다 유용
해커톤, 공모전 입상 보다는 유용
(참고)
삼성계열 => 코테에 등급 Adv -> Pro -> Expert
Adv - 기업 코테 합격
Pro - 대우가 좋음
Expert - 논외(너무 높은 등급)
=> 삼성계열사 중 1명도 없는 계열사도 많다
기업별 코딩테스트 특징
네이버 < 카카오 < 삼성
엘지, 하이닉스
(참고)
카카오 4번까지 풀어보면 된다.
코테에서 파악할 수 있는 것
- 구현력은 얼마나 갖췄는가?
- 기본적인 알고리즘은 사용할 줄 아는가?
- 컴퓨팅 사고력으로 문제를 접근하여 시간에 대한 효율을 높일 수 있는가?
- 특이한 상황(저격 케이스)에 대한 것도 고려하여 작성하는가?
- 위 사항들에 대한 응용력은 어느정도인가?
컴퓨팅 사고력 문제
문제의 요구사항을 토대로 다른 접근 방식으로 효율을 높일 방법을 찾아야함
- bit 연산을 토대로 연산
- 구간 데이터 처리
- 전처리기반 query
(참고)
이런 유형의 문제를 안풀어봤으면 그냥 틀리는 유형
이미 내가 어떻게 풀어야 하는지 알고 갔어야 풀 수 있는 문제 유형 <- well known
그래프 문제
- 비선형 data에 대한 처리 문제
완전 탐색 기반 문제
컴퓨팅 사고력 문제
특이한 상황 및 응용력 문제
공부해야 할 알고리즘
- 구현
- 시뮬레이션
- Greedy
- DFS
- Backtracking
- BFS
(그 다음) - 이분 탐색
- Dijkstra
- Dynamic Programming
- stack
- MST
- Bitmasking
(참고)
Greedy - 최선을 선택해 나가는 방식
추천 사이트
- 백준 (단계별로 풀어보기 level 38까지)
- 정올 (advanced) //백준과 둘 중 선택
- 프로그래머스 (level3까지)
- 해커랭크(HackerRank) - 출제 사이트
3화. 실전 코딩테스트 : 디버깅과 복잡도
(참고)
면접은 하나라도 책 잡히지 않는 것이 중요
평가 항목
- 다른 사람과 협업이 잘 될 것인가? 1~10
1~3 : 이 사람은 합격시키면 안된다.
4~6 : 보통
7~10 : 우수
=> 프로젝트와 연관지어 말하기 좋음 - 기술 이해도 : 프로젝트 뿐만 아니라 평소에도 얼마나 이쪽에 관심이 있는가?
=> 기술적 이해도가 높은가?
=> 관심도가 어느정도 있는가?
최신 트렌드 => 어떤 기업에서 어떤 기술이 나왔다더라
ex) deepseek 가 openai와 무슨 차이점이 있는지
(참고)
ssafy
적극성, 친화력
=> 보통 합격했던 친구
코드 작성이나 기술적으로 뛰어났던 친구
=> 좀 고생해서 합격한 친구
(참고)
기본은 전부 갖춰야 한다
<= 프로젝트
<= 최신 트렌드 파악
-- 관심이 있는 기업이 있으면 그 기업이 요즘 뭘 개발하고 뭘 추구하는지
ex) 삼성전자 => 삼성워치 => OS 타이젠
면접을 가려면 일단 코테는 패스해야 한다. <- 암울한 현실..
=> ssafy 같은 경우 팀프로젝트만 반년간 4번정도
반년 : 이론 공부
반년 : project만 4번
1.pycharm
2.visual studio code
python bebugger
python
pylance
Trace 연습
- Trace 연습은 단축키 활용부터
시간/ 공간 복잡도
코드가 돌아가는 시간 : 계산량이 많을 수록 올라감
=> 반복 횟수
=> 일반적으로 입력된 data의 양
=> data의 양에 따라 반복되는 횟수를 확인했을 때, 약 1억번 반복당 1초정도 걸린다
P.S에서 자주 사용하는 시간 복잡도
- O(1)
- O(n)
- O(n^2)
(참고)
입력 data의 개수 : N (1~100만)
=> O(logN), O(N), O(NlogN) 까지 사용이 가능하다.
=> 그정도 알고리즘까지만 내가 고려하면 된다.
=> N 사이즈가 엉청 작다 : 애초에 크게 문제를 낼 수 없어서 어쩔 수 없이 작게 만들었다.
=> 시간이 엉청 오래 걸릴만한 알고리즘 N! =>
P.S에서 복잡도 계산을 해야하는 이유
어떤 알고리즘 문제인지 파악
시간 복잡도
공간 복잡도
- 메모리 사용
(참고)
웬만한 문제에선 배열 크기로 문제가 되는 일이 거의 없음
딱 정해드리면 보통 1000만정도 까지 사용 가능
=> 그런데 혹시 이거 최대한 효율적으로 쓰는게 좋은가요? NO! 정해진 크기 내에서만 작성하면 ok
5화. 테스트
구현연습_1_3선 빙고
구현연습_1_Draw Tool
구현연습_1_오
'ASAC 빅데이터 분석가 7기 > ASAC 일일 기록' 카테고리의 다른 글
ASAC 빅데이터 분석가 과정 62일차 (25.03.11) (0) | 2025.03.11 |
---|---|
ASAC 빅데이터 분석가 과정 61일차 (25.03.10) (0) | 2025.03.10 |
ASAC 빅데이터 분석가 과정 59일차 (25.03.06) (0) | 2025.03.06 |
ASAC 빅데이터 분석가 과정 58일차 (25.03.05) (0) | 2025.03.05 |
ASAC 빅데이터 분석가 과정 57일차 (25.03.04) (0) | 2025.03.04 |