본문 바로가기
반응형

전체 글53

백준 7562번 - 나이트의 이동 (C++) 문제 알고리즘 분류 : 너비 우선 탐색(BFS) 접근 방법 BFS를 몰라서 검색해봤다. 만들기는 매우 쉬웠던 것 같다. (youtu.be/_hxFgg7TLZQ?t=193이거 3분 13초 ~ 5분까지 봤음.) BFS는 깊이를 기준으로 깊이가 1인 노드 탐색 -> 2인 노드 탐색 -> 3인 노드 탐색... 으로 진행되는데, 여기서 깊이(자식) = 체스말의 이동 횟수라고 생각하면 금방 해결할 수 있는 문제였다. 탐색 순서는 사실 한번 이동해서 갈 수 있는곳 -> 두번 이동해서 갈 수 있는곳 -> 세번 이동해서 갈 수 있는... 이런식으로 상당히 비효율적으로 진행되는 것 같다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 .. 2021. 4. 7.
그리디(Greedy) 알고리즘 Greedy(욕심) 알고리즘이란? 매 선택에서 지금 최선인 답을 선택하는 알고리즘. 다만, 종합적으로 판단하는 것이 아니기 때문에 결과적으로 정답이 아닐 수 있다. 진행 과정 두 숫자를 거쳐서 총 합의 최소를 구하는 과정에서, 정답은 시작->20->30 으로 총합 50이지만, 그리디 알고리즘을 통하여 접근하면 해당 알고리즘은 언제나 "현재 선택지의 상황만"고려하여 답을 찾는 알고리즘이기 때문에 1. 20보다 15가 더 적으니 15로 진행. 2. 100과 200중 100이 더 적으니 100으로 진행. 이런 방식을 통하여 총합 115가 정답으로 도출된다. 2021. 4. 6.
백준 2504번 - 괄호의 값 (C++) 문제 구현 방법 각 괄호마다 괄호 내부의 숫자들을 곱해주기 위하여 재귀를 통하여 구현했다. 크게 세 단계로 구성되어있으며, 먼저 붙어있는 괄호들을 A2B/A3B형식으로 숫자로 바꾸어준다. AB는 2 3 이 23인지 2와 3인지 숫자끼리 구분하기 위하여 덧붙였다. 그리고 이 과정에서 괄호의 갯수를 세며 존재가 불가능한지 판단한다. 이후 재귀를 돌며 괄호를 만나면 해당 괄호가 끝날때까지 그 사이에 있는 A?B에 괄호별 값을 곱해준다. 이때 string에서의 곱 이기 때문에 정수로 변환 후 곱한 후 해당 결과를 삭제->중간 삽입 하는 과정을 거쳐서 곱연산을 하게 되었다. 이를 재귀로 반복하여 문자열의 끝까지 있는 모든 괄호에 대하여 연산을 마치고, 이후 다시 순회하며 모든 숫자들을 더해준다 아쉬웠던점 중간 삽.. 2021. 4. 4.
백준 6198번 - 옥상 정원 꾸미기 (C++) 문제 구현 방법 높이 H를 입력 받을 때 마다, 이를 list에 저장한다.(Vector가 더 효율적일듯) 이후, list를 역순으로 순회하며 만약 순회중인 해당 값이 H보다 크다면, 정답 MAX에 list의 size를 더하고 순회를 중단합니다. 만약 H보다 작다면, 해당 값을 삭제시키고 순회를 마저 진행합니다. 이 과정을 반복하면 list에는 결국 내림차순으로 데이터가 저장되기 때문에, 한번이라도 H보다 값이 크다면 이후의 순회는 생략하는 구조입니다. 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 #include #include using namespac.. 2021. 4. 3.
GitHub 링크 github.com/scvtzp scvtzp - Overviewscvtzp has 6 repositories available. Follow their code on GitHub.github.com   포폴 공유용으로 글 수정했습니다.블로그 첫 글을 수정한건데 우연찮게 이게 깃이네요... 깃은 관리 안해서 + 예전 코드들은 너무 개판이라 이직 지원할때는 공개 안했습니다! 2021. 3. 22.
반응형