본문 바로가기

Python45

[알고리즘] 보이어-무어 다수결 알고리즘 - 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 - 26. Remove Duplicates from Sorted Array 안녕하세요, 코딩 열정 가득한 여러분! 🚀 오늘은 LeetCode의 매력적인 문제 '26. Remove Duplicates from Sorted Array'를 함께 풀어볼 시간이에요. 🎉 이 문제는 정렬된 배열에서 중복을 제거하는 방법을 배울 수 있는 완벽한 기회랍니다. 배열을 다루는 기초부터 효율적인 알고리즘까지, 모두 이번 문제에서 만날 수 있어요. 🤖💡 준비되셨나요? 코드와 함께 문제를 해결해봅시다! 🎯 문제 설명 이 문제는 비감소 순서로 정렬된 정수 배열 nums에서 중복을 제거하는 것입니다. 😲 중요한 것은, 이 작업을 "제자리"에서 수행하고, 각 고유 요소가 한 번씩만 나타나야 한다는 거예요. 또한, 고유 요소의 수 k를 반환해야 합니다. 문제보기 알아야 할 개념 공부하기 📘 투 포인터 기법:.. 2023. 12. 27.
[코딩 인터뷰] 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.