본문 바로가기

알고리즘3

문제 해결 역량을 기르기 위한 전략 이번 글에서 다룰 내용은 코딩 테스트 대비 알고리즘 문제 해결 역량 입니다. 저는 알고리즘 문제를 풀 때, 정형화된 순서나 방식을 따르지 않고 무작정 푸는 경향이 있습니다. 그리고 문제를 풀고 나면 그 이상 해당 문제에 대해서 고민해 보지 않았습니다. 위의 문제점들이 문제를 풀고 나서도 문제 해결 역량이 오르지 않는 원인이라고 생각되어 이번 기회에 문제 해결 역량을 기르기 위한 정형화된 틀을 잡아보려고 합니다! 문제 해결 전과 후로 나눠 문제 해결 역량을 끌어올리기 위한 전략을 한번 세워보겠습니다! 제가 문제를 해결했을 때를 떠올리면 보통 다음과 같은 사고를 거쳤을 경우가 대부분입니다. • 문제에 대한 정확한 이해 • 문제를 해결하기 위한 추상화 • 추상화한 내용 코드로 옮기기 차례로 설명 해보겠습니다... 2023. 12. 7.
1727. Largest Submatrix With Rearrangements - Java 이번에 다룰 주제는 알고리즘 문제풀이 입니다. 제가 푸는 모든 문제들을 기록하진 않고, 풀면서 기록이 필요하다 싶은 문제들만 정리해서 기록하려고 합니다! 해당 문제가 기록이 필요하다고 느낀 이유는 문제 해결을 위한 접근 방식을 기록해보고, 해당 접근 방식의 문제점과 해당 문제점을 해결하기 위해 어떤 접근 방식을 생각해 내야 하는지를 기록함으로써 제가 어려워 하는 부분들을 찾아낼 수 있기 때문입니다. 이제 문제를 살펴보겠습니다. 문제 https://leetcode.com/problems/largest-submatrix-with-rearrangements/ Largest Submatrix With Rearrangements - LeetCode Can you solve this real interview qu.. 2023. 11. 26.
코딩 테스트를 위한 알고리즘 - DFS를 통한 순열, 조합 구현 진행 동기 요즘 저는 취업을 위해 코딩 테스트 문제를 풀고 있습니다. 코딩 테스트에 나오는 문제 중에서 DFS를 통한 순열, 조합을 이용해서 풀어야 하는 것들이 자주 나오는 거 같아서 이번에는 DFS 개념과 이를 이용한 순열, 조합 구현에 대해 포스팅을 작성해 보려고 합니다. DFS DFS(Depth-first search)란 깊이 우선 탐색으로 그래프 자료구조의 모든 정점을 깊이를 우선하여 탐색하는 검색 알고리즘 입니다. 탐색하는 방식은 위 그림과 같습니다. 코딩 테스트에서 DFS 알고리즘은 "백트래킹(backtracking)" 을 위해 사용됩니다. 백트래킹(backtracking) 기본 개념은 DFS 이지만, 현재 있는 위치에서 조건에 부합하는 모든 경로를 탐색하고, 일정 깊이에 도달하거나 조건에 부.. 2023. 7. 25.