본문 바로가기

데이터벌집102

[코딩 인터뷰] LeetCode - 392. Is Subsequence 문자열 문제 정복 안녕하세요, 여러분! 🌟 이번 글에서는 'Is Subsequence'라는 문제를 통해 문자열 처리의 기초를 다지는 방법을 알아볼 거예요. 준비되셨나요? 그럼 시작해볼까요? 🏁 문제 설명 🧩 'Is Subsequence' 문제는 두 문자열 s와 t가 주어졌을 때, s가 t의 서브시퀀스인지 아닌지를 판별하는 문제예요. 서브시퀀스란 원본 문자열에서 일부 문자를 삭제해도 (삭제하지 않을 수도 있어요!) 나머지 문자들의 상대적인 순서를 유지하여 만들어낸 새로운 문자열을 의미해요. 예를 들어, "ace"는 "abcde"의 서브시퀀스지만, "aec"는 아니에요. 문제보기 알아야 할 개념 공부하기 📘 이 문제를 풀기 위해선 다음 개념들을 이해해야 해요: **서브시퀀스(Subsequence)와 서브스트링(Substrin.. 2024. 1. 2.
[알고리즘] 보이어-무어 다수결 알고리즘 - Boyer-Moore Majority Vote Algorithm 안녕하세요, 오늘은 프로그래밍과 알고리즘의 흥미진진한 세계에서 매우 중요한 주제인 '보이어-무어 다수결 알고리즘'을 살펴보려고 합니다. 🧐 이 알고리즘은 코딩 인터뷰에서 자주 마주치는 다양한 문제들, 특히 배열에서 가장 많이 등장하는 요소를 찾는 문제를 효율적으로 해결하는 데 큰 도움을 줍니다. 🎓 🧐 Boyer-Moore Majority Vote Algorithm 이란? 이 알고리즘은 1981년 Robert S. Boyer와 J Strother Moore가 개발했어요. 목적: 주어진 배열에서 과반수를 차지하는 요소를 효율적으로 찾는 것입니다. 특징: 배열을 한 번만 순회하면서 과반수 요소를 찾아낼 수 있어요. 🔍 작동 원리 변수 설정: '후보 요소(candidate)'와 '카운터(count)' 두 가지.. 2023. 12. 29.
[코딩 인터뷰] LeetCode - Array/Strings - 169. Majority Element 안녕하세요, 코딩 인터뷰를 준비하시는 여러분! 오늘 다뤄볼 문제는 "169. Majority Element"입니다. 이 문제는 배열에서 가장 많이 등장하는 요소, 즉 다수의 요소를 찾는 것으로, 코딩 인터뷰에서 자주 등장하는 유형 중 하나입니다. 🎓 이 문제를 해결하기 위해서는 배열 순회부터 해시 테이블, 보이어-무어 다수결 알고리즘, 분할 정복까지 다양한 프로그래밍 개념을 이해하고 적용할 필요가 있습니다. 🧠 이 글에서는 이러한 개념들을 실제 문제에 어떻게 적용하는지 알아보겠습니다. 🎯 문제 설명 "169. Majority Element" 문제는 주어진 크기의 배열 nums에서 다수의 요소(메이저리티 엘리먼트)를 찾아내는 것입니다. 메이저리티 엘리먼트는 배열 내에서 ⌊n / 2⌋번 이상 나타나는 요소를.. 2023. 12. 28.
[코딩 인터뷰] LeetCode - Array / String - 27. Remove Element 안녕하세요, 코딩에 열정을 가진 여러분! 🌟 오늘은 LeetCode에서 자주 등장하는 문제인 '27. Remove Element'를 다뤄볼 거예요. 이 문제는 배열과 투 포인터에 대한 기본적인 이해를 바탕으로, 효율적인 문제 해결 능력을 요구합니다. 🧠 여러분도 함께 문제를 풀어보며, 실력을 한 단계 업그레이드해볼까요? 💪 🎯 문제 설명 "Remove Element" 문제는 정수 배열 nums와 정수 val이 주어졌을 때, nums에서 val과 일치하는 모든 요소를 제거하는 것입니다. 중요한 점은, 이 작업을 "제자리"에서 수행해야 한다는 거예요! 😲 배열의 순서는 변경될 수 있지만, val과 일치하지 않는 요소들의 개수 k를 반환해야 해요. 👉 예시: 입력: nums = [3,2,2,3], val = .. 2023. 12. 26.