전체 글26 KMP 알고리즘 KMP 알고리즘은 빠른 문자열 검색을 돕는 알고리즘이다. 찾고자 하는 문자열을 pattern 이라고 하고 모든 문장을 all string 라고 하자. KMP 알고리즘을 구현하기 위해 해야할 것이 있다. 1. Pattern 문자열을 이용해 pi(파이)배열을 만들어야 한다. 2. pi 배열을 이용해 빠른 문자열을 검색해준다. pi배열 이란, Pattern 문자열에 있는 접두사 (Prefix) 와 접미사 (Suffix)가 같아 지는 최대 길이를 나열해 놓은 배열이다. 말로 설명하지니 좀 어려우므로 아래 그림을 통해 확인해보자. 예를 들어, pattern이 "abcdabc" 라면 단어의 길이가 7인데, 1개씩 늘려가며 접두사와 접미사가 겹치는 최대 길이를 나타내 보면, pi배열은 [0, 0, 0, 0, 1, 2.. 2023. 4. 26. 리눅스마스터 2급 2차 합격 후기! 2023년 3월 11일 제 2301회 리눅스마스터 2급 2차 시험을 봤다. 준비 기간은 넉넉하게 1달? 정말 빡세게 한건 일주일이었다. 시험장에 가면 저런 시험지와 OMR카드를 준다. 준비물: 컴싸, 볼펜, 신분증, 수검표 수검표는 따로 출력 안해갔고, 핸드폰에 캡쳐해놓은 것이 있었는데, 핸드폰 꺼야되니까 포스트잇을 주시면서 수험번호 미리 적어놓으라고 하셨다. 그리고 컴싸 없는 사람 있으면 빌려준다고도 하셨다. 나는 그것도 모르고 시험 시작 30분전에 마트에서 300원 주고 샀다 ㅋㅋ 준비한대로 아는 것도 많이 나왔고 보기 4개중에 2개가 뭐가 정답인지 헷갈리는 것도 많았다.. 준비 부족이었나보다.. 100분 시험에 80문제이다! 준비과정은 이렇다. 먼저, 이기적 출판사에 있는 책을 샀다. 굳이 필요 없.. 2023. 3. 16. [LeetCode] 1026. Maximum Difference Between Node and Ancestor (Python) 1026번 문제링크 https://leetcode.com/problems/maximum-difference-between-node-and-ancestor/description/ Maximum Difference Between Node and Ancestor - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제설명 입력: TreeNode 출력: 정수값 트리의 같은 path에서 값이 가장 큰 것과 작은 것의 차이를 구하는 문제 *같은 path란 - 같은 조상을 가.. 2022. 12. 9. [LeetCode] 623. Add One Row to Tree (Python) 623번 문제 링크 https://leetcode.com/problems/add-one-row-to-tree/ Add One Row to Tree - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제설명 입력: root (TreeNode), val(int), depth (int) 출력: depth 깊이에 val 값이 추가된 root 트리 * depth가 1이라면 root자리에 node를 추가하고 원래 tree를 새 node의 left subtree로 오게하기 .. 2022. 10. 5. [LeetCode] 1578. Minimum Time to Make Rope Colorful (Python) 1578번 문제 링크 https://leetcode.com/problems/minimum-time-to-make-rope-colorful/ Minimum Time to Make Rope Colorful - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com 문제설명 입력: colors 문자열, neededTime 정수 배열 출력: 풍선제거 최소시간 Alice는 같은 색깔의 풍선이 2개 이상 연속되는 것을 싫어한다고 한다. (성질 머리 하고는..) Bob에게 연속된 풍.. 2022. 10. 4. [LeetCode] 658. Find K Closest Elements (Python) 658번문제 링크 https://leetcode.com/problems/find-k-closest-elements/ 문제설명 입력: 정렬된 정수 배열 arr, 두 정수 k, x 출력: x와 가장 가까운 정수 k개를 담은 오름차순 배열 예시로 x와 더 가까운 것에 대한 정의로는 비교하고자 하는 값과 x의 차의 절댓값이 작은 것이 더 가까운 것으로 정의되고 절댓값이 같을경우 값이 더 작은 것이 x와 더 가까운 것으로 정의된다. 문제예제 Example1에서 보면 x = 3 이기 때문에 3과 가장 가까운 arr의 원소들을 살펴보면 (문제 정의에 따르면) 3, 2, 4, 1, 5 순서대로 arr과 가까운 것을 알 수 있다. 문제풀이 1. arr의 정렬순서를 x와 가장 가까운 순으로 정렬 하고자 했다. 2. sor.. 2022. 9. 29. 이전 1 2 3 4 5 다음