Skip to content

km-kwon/CodingTest

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

코딩 테스트 대비


유형별


단순 구현

단순 구현 내용
순차적으로 하면 될듯?
map을 이용해서 2차원 배열 삽입
시뮬레이션
삼성 기출문제

해쉬

딕셔너리 자료형 처리에 유용한 collection 라이브러리 사용
딕셔너리 자료형은 해쉬를 사용하여 속도가 빠름
폰켓몬과 비슷한 유형의 문제이며 큰 차이는 존재X
list의 dictionary 자료형 화(fromkeys 사용) 
dictionary values 값 순회

스택 / 큐

큐를 실제로 구현.
pop을 사용한 큐 사용
IndexError 사용횟수 늘려보기

정렬 알고리즘 중 하나인 heap 알고리즘사용
시간복잡도 nlogn으로 기존 sort n^2에 비해 훨씬 빠른 속도로 출력 가능
힙 정렬 알고리즘 사용했지만 수학적 능력이 부족한것 같음
시간복잡도는 통과
일부 테스트 케이스 불통 원인 분석중

백트래킹

오랜만에 하는 알고리므 백트래킹 문제

완전 탐색

완전 탐색이니 만큼 큰 어려움은 존재 X
수학적 능력이 좀 필요하다 생각

그리디

heap을 이용한 그리디
단순 구현
인점 값들 비교 => stack 활용방안 고민
다른 풀이도 비교
최소 신장 트리 구하기
크루스칼 알고리즘 사용

BFS/DFS

스택과 비슷한 개념 사용
일종의 브루트 포스 방법 사용
BFS 근접 노드 우선 탐색 방법 활용
Stack 활용하여 해결
BFS을 화룡해 단어 탐색
그래프가 아니어도 활용 가능
띡히 큰 어려움은 없었는 BFS 문제
indexError에 대해서 너무 고민함
단순히 길이가 넘어가면 핸들링 필요 X
각 방향에 대해서 배열로 미리 선언
오랜만에 초심 찾기
최적화 방향 고려해 봐야할듯
dir에 대해서 선언 고민
무난하게 쉬운 BFS/DFS

그래프

BFS을 사용하여 해결
그래프 간의 관계를 이차원에서 일차원으로
시간 복잡도 고려하여 해결
다익스트라 알고리즘 사용하는 문제
하지만 간선의 길이가 1이기 떄문에 BFS처럼 풀었음
다익스트라 알고리즘
재귀 연습문제 개념
재귀적으로 확인만 하면 되는듯
위상정렬 사용해서 해결해야함
하지만 dp 방식도 사용 가능해서 이걸로 해결
heap정렬 활용해서 해결

정렬

ASCII값으로 str 변환 후 비교과정 
sort 활용법
sort는 람다의 활용법이 중요하다.

DP

dp로 인한 동적 계획법
배열 선언으로 이전 값 참조 => 계산 시간 줄어듦
dp로 인한 동적 계획법
2차원 배열 선언 및 이전 값 참조
단순한 DP문제
일단 큰수부터 먼저 나눠보는게 핵심
단순한 DP문제
일단 큰수부터 먼저 나눠보는게 핵심
단순한 DP문제
점화식 세우는게 중요함
조금 어려웠던 dp 문제
생각해줘야했던 경우의 수가 있기에 헷갈림
최적화는 고민해야할듯

이진탐색

이진 탐색 개념을 실시
이진 탐색을 실시할 경우 log n 만큼의 시간이 걸림

프로그래머스


Level 1

dictionary 자료형의 시간 복잡도를 활용하여 시간 초과 줄임
.index 보다 dictionary 자료형이 시간 복잡도 훨씬 덜함
달리기 경주에서 풀었던 문제와 비스사게 시간 복잡도를
고려해 dictionary를 사용하여 해결
dictionary를 선언할때 서로 다른 배열을 페어로 선언 => zip사용
- 너무나 브루트포스 방법만을 고민함
- 수학적 센스를 생각해보는 고민을 해봐야할듯
for 문 사용시 range 사용 지양
index로 접근 하지 않고 i, j 한번에 사용 가능

Level 2

성공에 대해 너무 어렵게 생각함
DP를 사용하려 풀려고 했지만 너무 어렵게 풀어서 실패
결국 1시간이 넘어 답을 봤지만 생각했던 풀이가 맞았음
크게 어렵지 않은 완전 탐색 문제
단순 구현 문제
큰 어려움은 없었음
그리디를 고민하였지만 dp로 해결
set 즉 집합을 이용하여 해결
딕셔너리 사용 value 기준 정렬
그리디 알고리즘을 활용하여 해결
조건의 양식을 약간 수정하여 해결
que를 사용하면 쉽게 해결
BFS 활용하여 해결
간단한 문제이니 만큼 해결 시간 줄이기
abs() 사용 <= 절대값
스택을 사용하여 해결하면 쉽게 해결
다만 문제 이해에 오래 걸림
스택 사용한 것 제외하고 큰 어려움 X
다익스트라 알고리즘 사용
일정 노드에서 최소 거리 구하기
단순 구현 문제
해쉬 활용하여 시간복잡도 최소화
math 라이브러리 사용
외부 라이브러리가 있을 것이란 생각을 망각
수학적 생각을 심도있게 해봤어야함
이중 포인터 알고리즘 사용
이중 for문 지양
pop을 이용한 리스트 수정은 시간 복잡도를 증가시킬 수 있음
이를 해결한 것이 이중 포인터
가장 대표적인 dp 문제
dp를 활용한 가장 기본적인 문제
점화식을 활용하여 해결
2xn 타일링과 같은 문제
"가장 가까이" 라는 말이면 보통 스택일듯
스택에 관한 시간 복잡도는 조금 생각을 해봐야할듯
시간 복잡도에 너무 얽매이지 말것.
BFS의 정석적인 문제
전형적인 dp 방법
오랜만에 푸는 BFS DFS 재귀가 아닌 스택으로 풀음
수학적 접근만 잘하면 쉽게 풀림
단순 계산 문제
그리디와 heapq를 사용한 풀이
정렬을 이용한 심플한 풀이

Leavel 3

BFS 사용 및 발상의 전환
출발지 기준으로 거리계산 => 출발지 수만큼 시간 복잡도 증가
도착지 기준으로 거리계산 => 출발지 수 상관 없이 시간 복잡도 1
수학적 생각만 살짝 하면 쉽게 해결
배열의 길이가 긴 경우 이분 탐새 고려
시간에 따른 최대 인원 고려
최대값 찾기 위해 최대 힙 사용
for 문 선언에 대한 활용
그리디를 이용한 활용방법 => 중에서도 시간복잡도 고려
N이 크다면 다른 방법을 생각하는 것도 좋은 방법
그리디를 이용한 활용법
최소 조건에 대한 고려 및 응용
문제를 제대로 주의하여 읽자
lambda에 대해서 활용성을 높임
이분 탐색
배열의 길이 조건 확인
두개의 큐에 대해 동기화 문제
max의 경우 O(N)이 걸림 그래서 해당 풀이는 O(NlogN))임
하지만 이중 큐에 대해서 해결하면 O(log N log N)이 될거임
이분탐색을 이용한 풀이 실패
다른 배열이 고정되서 주어졌다고 해서 고정관념 박힘
배열의 ::-1을 활용한 뒤집기
BFS로 이용한 풀이 실패
DFS활용
각각의 특징을 잘 알아놔야 할듯 함

sub string 문제는 대부분 이중 포인터 문제인듯

보통 구현 문제는 자료구조를 활용하여 하는 풀이가 존재
링크드 리스트의 삽입 del 의 시간 복잡도는 O(1)임
부분수열의 합과 같이 이전 내용 기억 => DP
부분수열의 범위?? => 이중포인터 인듯 함

SQL

첫 sql 문제 order정렬 및 select
where절에 문자열 찾기 활용
where 절에 서브 쿼리 활용
join을 사용하여 테이블 연결
max 사용한 심플한 풀이

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages