본문 바로가기
CS/알고리즘

[카테부] 코딩테스트 1회차

by alphaca202 2024. 7. 20.
총평

📍문제 조건 정리하는게 중요

📍조건 놓쳐서 틀린게 많음

 

 

1번 - 시뮬레이션 문제


틀린 이유

- 이중 for 문을 돌려서 시간에서 짤림 ( 보통 문제에서는 10의 9승 안에 들어가야함)

- 문제를 꼼꼼하게 읽고 순서대로 푸는 게 중요함

 

이중 for문 안돌리고 어떻게 하지??

-> for문을 돌리면서 한번 돌 때마다 i씩 증가하니까 그걸 일일이 기록하지 말고 그냥 ans에 더할 때 같이 더해주기

-> 한번 자른 곳을 또 자를 수도 있음 이러면 i를 더해주면 안되니까 마이너스 범위가 되도록 해야함 

-> trees[k] -= (trees[k] + i) 이런 식으로 현재 trees에 남아있는 것에서 현재까지 인덱스 빼줘야됨 !

 

 

 

2번 - 완전 탐색


시뮬레이션 할 필요 없는 완전 탐색 

 

틀린 이유

- 판다가 살고 있지 않은 칸에서만 구해야 되는데 이 조건 고려 안함

- 최솟값의 범위 설정할 때 20000 * (100 * 100 - 1000) 까지 나올 수 있어서 충분히 큰 수로 했어야 되는데 너무 작은 값으로 함. 

 

 

3번 - 격자에서의 그래프 탐색 (!= 노드에서의 그래프 탐색) 


못 푼 이유

-> bfs 구현을 못함

 

그래프 탐색 어려워지는 경우

- dfs, bfs 비트는 경우 

 

강사님 정리

n * n 크기의 도시에서 구름이는 상하좌우 주변의 칸 중 하나로 이동할 수 있고,

이동 가능한 지역 (0), 불가능한 지역 (X)

도시의 모든 도로는 이동할 때 거리만큼 비용이 든다. 

 

 


 

 

요즘 트렌드

- 요즘 시뮬레이션 문제가 많이 나옴 (복잡한 구현 문제)

- 실질적인 구현, 프로그래밍 능력 평가하는 문제

 

 

코딩테스트 공략법 

코딩테스트 왜 볼까?

- 코테로 1차 필터링

- 수시채용 문제는 훨씬 고난이도

 

어떻게 준비?

기초 구현 능력 : 되게 단순한 기초 능력

- 자바 같은 경우 int, long 뭘 써야 할지 

- 전체 큰 그림(시간 복잡도, 메모리 측면)을 보는 능력

- 내가 선택한 언어에 깊은 이해 (코딩테스트와 개발을 위한 언어가 다름)

 

기초 알고리즘 능력 

- 정렬, 그래프 탐색(dfs, bfs), 트리 등등

- 눈 감고도 구현할 수 있도록 

 

요구 사항 파악하기 - 완전 그랬음 ...

- 추측 금지

- 문제를 읽고 요구 사항만 정리하는 연습 -> 문제 여러번 읽지 않아야함

 

공부 방법

- 잘하는 사람 중심으로 모이는 스터디

- 코테 보는 경험 중요 - 플랫폼 별로 복기

- 모든 회사들이 문제 은행을 만들고 있음 

- 모의고사 많이 풀기

 


QnA

 

산업별

 

- 금융권 : 특정 기초 알고리즘을 중시함 (dp, 그래프 문제 완벽 구현) + pt도 같이함

- 게임 산업 : 구현 문제 중심 -> 격자 문제, 가장 효율적인 정렬 

 

언어 제한

 

- 빅테크 : 제한 없음

- 게임 산업 : c++ 선호

- 하드웨어, 임베디드 분야 : c++, java

 

 

기본 학습

 

- 정렬

- 탐색

- 그래프

- DP

- 우선순위 큐 (구현 시 우선순위)

- 문자열 알고리즘 (고난이도)

 - 투포인터 완전 탐색

 

문제 읽고 에디터에 정리하는 연습

 

몇 분 동안 고민하느냐 - 2시간 정도 max

 

- 알고리즘 모르거나

- 실수를 찾거나

 

히든케이스 잡는 법

 

- 소수 2, 3, 7, 11 ??? 까지 확인 엣지 케이스????? 를 만들어서 확인?