Problem Solving/Algorithm

Problem Solving/Algorithm

[Algorithm] 재귀

바킹독님의 강의를 참고하였습니다. https://blog.encrypted.gg/category/강좌/실전%20알고리즘 '강좌/실전 알고리즘' 카테고리의 글 목록 blog.encrypted.gg + 해당 카테고리엔 알고리즘 문제풀이와 관련된 내용을 업로드. + 기록해두고 싶은 부분만 정리해 둠. 안녕하세요, 재귀 파트를 시작하겠습니다. 지금 자신 있게 말할 수 있는 게 있는데 이 파트가 정말 어려울 것입니다. 라고하심 알고리즘 설명 재귀는 하나의 함수에서 자기 자신을 다시 호출해 작업을 수행하는 알고리즘이다. 이러한 예시에서, 두 가지 설명방법이 존재하는데, 1번 도미노가 쓰러지면 2번 도미노가, 그리고 3번 , 4번... 1번 도미노가 쓰러진다(참), k번 도미노가 쓰러지면 k+1번 도미노도 쓰러진다(..

Problem Solving/Algorithm

[Algorithm] DFS

바킹독님의 강의를 참고하였습니다. https://blog.encrypted.gg/category/강좌/실전%20알고리즘 '강좌/실전 알고리즘' 카테고리의 글 목록 blog.encrypted.gg + 해당 카테고리엔 알고리즘 문제풀이와 관련된 내용을 업로드. + 기록해두고 싶은 부분만 정리해 둠. 알고리즘 설명 DFS : 다차원 배열에서 각 칸을 방문할 때 깊이를 우선으로 방문하는 알고리즘. (BFS는 너비) 예시 BFS 과정에서 다른 건 다 같고, 큐가 스택으로 바뀐 것뿐이다. BFS때와 같이 예시를 보자. (0,0)부터 이어진 파란색 칸을 확인할 것이다. (0,0)을 밟은 상태에서 시작했으니, 해당칸에 표시를 남기고 스택에 넣는다. (초기세팅) 이후에는, 스택이 빌 때까지 계속 스택의 top을 빼고 해..

Problem Solving/Algorithm

[Algorithm] BFS

바킹독님의 강의를 참고하였습니다. https://blog.encrypted.gg/category/강좌/실전%20알고리즘 '강좌/실전 알고리즘' 카테고리의 글 목록 blog.encrypted.gg + 해당 카테고리엔 알고리즘 문제풀이와 관련된 내용을 업로드. + 기록해두고 싶은 부분만 정리해 둠. 알고리즘 설명 "너비"를 우선으로 방문한다. 원래 BFS는 그래프라는 자료구조에서 모든 노드를 방문하기 위한 알고리즘이다. 여기서 말하는 그래프는 오른쪽 그림과 같은 모양의 그래프이고, 정점과 간선으로 이루어진 자료구조이다. (내 생각) 설명 백날 듣는 것 < 예시 보고 짜보는 것 이라고 생각하기에 코드를 보자.. STL pair #include using namespace std; int main(void) {..

Problem Solving/Algorithm

[Algorithm] 연결리스트

바킹독님의 강의를 참고하였습니다. https://blog.encrypted.gg/category/강좌/실전%20알고리즘 '강좌/실전 알고리즘' 카테고리의 글 목록 blog.encrypted.gg + 해당 카테고리엔 알고리즘 문제풀이와 관련된 내용을 업로드. + 기록해두고 싶은 부분만 정리해 둠. 정의&성질 연결리스트 원소들을 저장할 때 그다음 원소가 있는 위치를 포함시키는 방식으로 저장하는 자료구조. 위 사진처럼, 배열은 0,1,2,3번에 사람들을 넣어두는 반면, 연결 리스트는 배열사진에서의 0번에 해당하는 사람이 1번을 기억하고, 1번이 2번을 기억하는, 구조이다. => 이렇게 되면 0번을 통해 나머지 3명이 누구인지 전부 알아낼 수 있게 된다. 연결리스트에서 k번째 원소를 찾기 위해선 O(k)의 시간..

Problem Solving/Algorithm

[PS] 코드 작성 시 참고사항

바킹독님의 강의를 참고하였습니다. https://blog.encrypted.gg/category/강좌/실전%20알고리즘 '강좌/실전 알고리즘' 카테고리의 글 목록 blog.encrypted.gg + 해당 카테고리엔 테스트에 필요한 내용만 정리할 예정. + 기록해두고 싶은 부분만 정리해 둠. 표준 입출력 코딩테스트에서 입력/출력은 표준 입출력을 사용한다. C에서는 scanf/printf , C++에서는 cin/cout을 사용하는데 scanf/printf 는 C++ string을 처리할 수 없다.(char* 로 문자열을 다룸, C++ string이 월등하게 편함.) => scanf/printf를 사용하면서도 C++ string을 활용하고 싶으면 char*로 입력을 받고 string으로 형변환을 해서 c_st..

Problem Solving/Algorithm

[PS] 시간, 공간복잡도

바킹독님의 강의를 참고하였습니다. https://blog.encrypted.gg/category/강좌/실전%20알고리즘 '강좌/실전 알고리즘' 카테고리의 글 목록 blog.encrypted.gg + 해당 카테고리엔 알고리즘 문제풀이와 관련된 내용을 업로드. + 기록해두고 싶은 부분만 정리해 둠. 시간복잡도 시간복잡도 입력의 크기와 문제를 해결하는 데 걸리는 시간의 상관관계. ex) N초, lgN 초 빅오표기법 주어진 식을 가장 큰 대표항만 남겨서 나타내는 방법. (살짝 미적분이랑 비슷하다고 생각함. ex) N² + 2N + 4에서 N²가 훨씬 크니(증가속도가 크니) O(N²)로 표기함) 시간복잡도를 그래프로 나타낸 모습. 알고리즘 문제에서 주어지는 시간제한은 대부분 1초에서 5초 사이 정도이니, 입력의 ..

한수현입니다
'Problem Solving/Algorithm' 카테고리의 글 목록