백준 사이트에서 문제를 풀다보니 알고리즘에 대한 공부가 더 필요할 것 같아서 추가로 공부한 내용을 정리했다. 유튜브에서 (이코테)이것이 취업을 위한 코딩 테스타다 라는 강의를 참고했다.특정한 알고리즘의 성능을 분석하기 위해서 시간복잡도와 공간복잡도 두가지를 분석하는데,
오늘은 어제 봤던 그리디 알고리즘 영상을 마저 보고 백준에서 그리디 관련 문제들을 풀었다. 이번 글에서는 영상에서 나온 문제들을 정리하고, 백준 문제는 다른글에 정리했다.각자리숫자로만 이루어진 문자열S를 왼쪽부터 하나씩 모든 숫자 사이에 +혹은 x 를 넣어 가장 큰 수
며칠전 해결하지 못했던 알고리즘 강의의 문제를 해결했다. 그당시 문제의 답을 미리 풀고 답을 낸 뒤, 코드를 짜서 나온 결론과 비교하는 방식으로 풀었더니 이상한 결과가 나왔었다. 이번에는 모든 경우의 수를 확인해서 답을 내는 코드로 짜봤더니 정답이 나왔다. 풀고나서 강
자기 자신을 다시 호출하는 함수재귀함수가 호출되면 컴퓨터 시스템의 스택 프레임에 함수가 반복적으로 쌓여서 마지막으로 호출된 함수가 처리된 이후에 그 함수를 불렀던 함수까지 처리되는 방식인데, 이 형태가 실제로는 스택과 같은 형태로 동작한다고 이해할 수 있다. 종료 조건
너비 우선 탐색이라고 부르며, 그래프에서 가까운 노드부터 우선적으로 탐색하는 알고리즘이다.큐 자료구조를 이용한다.<동작과정>1\. 탐색 시작 노드를 큐에 삽입하고 방문 처리를 한다.2\. 큐에서 노드를 꺼낸 뒤에 해당 노드의 인접 노드 중에서 방문하지 않은 노드를
데이터를 특정한 기준에 따라 순서대로 나열하는 것처리되지 않은 데이터 중에서 가장 작은 데이터를 선택해 맨 앞에 있는 데이터와 바꾸는 것을 반복한다.선택 정렬은 N번 만큼 가장 작은 수를 맨 앞으로 보내야 한다.N + (N-1) + (N-2) + ... + 2이는 (N
앞쪽에 있는 원소들이 이미 정렬돼있다고 가정하고 뒤쪽에 있는 원소를 앞쪽에 있는 원소의 위치 중에서 한 곳으로 들어가도록 만드는 방식으로 동작한다.선택 정렬과 마찬가지로 반복문이 두 번 중첩되어 사용되기 때문에 시간복잡도는 O(N^2)이다.현재 리스트의 데이터가 거의
문제 해결에 시간이 걸려서 검색하여 해결하려 했으나, JavaScript로 된 풀이를 찾지 못해 결국 혼자서 문제를 해결했다.너무 단순하게 푼 것 같아서 다시 풀어볼 예정.