본문 바로가기
반응형

전체 글221

[코딩 인터뷰] LeetCode - 202. Happy Number 무한루프에 빠져나오기 위해서 집합사용 Python 오늘은 알고리즘의 기초를 다지며 '행복한 숫자(Happy Number)' 문제를 풀어볼 거에요. 준비되셨나요? 시작해봅시다! 🧑‍💻 문제 설명: 행복한 숫자란 무엇일까요? 🤔 '행복한 숫자' 문제는 이렇게 시작해요. 어떤 양의 정수에서 시작해서, 그 숫자의 각 자릿수를 제곱한 후 합한 새로운 숫자로 바꿉니다. 이 과정을 반복했을 때, 결과가 1이 되면 그 숫자는 '행복한 숫자'라고 해요. 반면 1이 되지 않고 계속 반복되면 '행복하지 않은 숫자'죠. 😄 ↔️ 😔 문제보러가기 문제 풀어보기: 실제 코드로 만나는 행복한 숫자 🧑‍💻 이 코드는 숫자를 문자열로 변환하여 각 자리수를 분리한 후, 각 자리수를 제곱하고 그 합을 다시 계산하는 함수 get_next를 사용합니다. 그리고 중복을 체크하기 위해 seen.. 2024. 1. 8.
[코딩 인터뷰] LeetCode - 242. Valid Anagram 파이썬 카운터 사용법 안녕하세요 여러분! 😄👋 오늘은 제가 코딩을 공부하면서 배운 재미있는 문제 하나를 여러분과 공유하려고 해요. 바로 '유효한 애너그램'을 찾는 문제예요. 🧐💻 이 문제는 코딩 테스트나 알고리즘 연습에 자주 등장하는 유형 중 하나랍니다! 🔍 문제 설명 '유효한 애너그램(Valid Anagram)' 문제는, 두 문자열 s와 t가 주어졌을 때, t가 s의 애너그램인지 아닌지를 판별하는 문제예요. 애너그램이란, 다른 단어나 구절의 문자를 재배열하여 새로운 단어나 구절을 형성하는 것을 말해요. 중요한 것은 모든 원래 문자를 정확히 한 번씩만 사용해야 한다는 거죠! 예를 들어, s = "anagram", t = "nagaram"인 경우에는 t가 s의 애너그램으로, true를 반환해야 해요. 반면에, s = "rat".. 2024. 1. 7.
[코딩 알고리즘] LeetCode - 205. Isomorphic Strings 문제로 알고리즘의 세계로! ✨🌟 안녕하세요, 코딩 마법사 여러분! 🧙‍♂️👩‍💻 오늘은 프로그래밍의 신나는 세계로 여러분을 안내할 거예요. 우리가 다뤄볼 문제는 바로 'Isomorphic Strings'! 🎯👨‍💻 이 문제는 문자열의 패턴을 인식하는 알고리즘 능력을 테스트하는 재미있고 도전적인 문제입니다. 1️⃣ 문제 설명 🤔💬 우리의 목표는 두 문자열 s와 t가 동형(isomorphic)인지 판별하는 것입니다. 동형이란 s의 문자들을 다른 문자로 치환해서 t를 얻을 수 있다는 의미죠. 중요한 건, 모든 문자의 출현은 다른 문자로 일관되게 바뀌어야 하며, 같은 문자로 매핑되어서는 안 된다는 점! 같은 문자가 자기 자신으로 매핑될 수는 있습니다. 🔄🔗 릿코드 문제 보러가기 2️⃣ 알아야 할 개념 공부하기 📚🧠 해시 테이블(Hash Tab.. 2024. 1. 4.
[코딩 인터뷰] LeetCode - 383. Ransom Note 파이썬 해시 테이블과 카운터 사용법 👋 안녕하세요👨‍💻 이번에 다룰 문제는 LeetCode의 '383. Ransom Note'라는 문제인데요, 문자열 처리 능력을 시험하는 정말 흥미진진한 문제랍니다! 🕵️‍♂️💻 문제 설명 🧐 문제의 핵심은 다음과 같아요. 두 문자열, ransomNote와 magazine이 주어질 때, ransomNote가 magazine의 문자들을 사용해서 만들어질 수 있는지 판단하는 거예요. 단, magazine의 각 문자는 한 번씩만 사용할 수 있습니다. 예를 들어보죠! 🌟 예시 1: ransomNote = "a", magazine = "b" ➡️ 결과: false 예시 2: ransomNote = "aa", magazine = "ab" ➡️ 결과: false 예시 3: ransomNote = "aa", magazi.. 2024. 1. 3.
[코딩 인터뷰] LeetCode - 392. Is Subsequence 문자열 문제 정복 안녕하세요, 여러분! 🌟 이번 글에서는 'Is Subsequence'라는 문제를 통해 문자열 처리의 기초를 다지는 방법을 알아볼 거예요. 준비되셨나요? 그럼 시작해볼까요? 🏁 문제 설명 🧩 'Is Subsequence' 문제는 두 문자열 s와 t가 주어졌을 때, s가 t의 서브시퀀스인지 아닌지를 판별하는 문제예요. 서브시퀀스란 원본 문자열에서 일부 문자를 삭제해도 (삭제하지 않을 수도 있어요!) 나머지 문자들의 상대적인 순서를 유지하여 만들어낸 새로운 문자열을 의미해요. 예를 들어, "ace"는 "abcde"의 서브시퀀스지만, "aec"는 아니에요. 문제보기 알아야 할 개념 공부하기 📘 이 문제를 풀기 위해선 다음 개념들을 이해해야 해요: **서브시퀀스(Subsequence)와 서브스트링(Substrin.. 2024. 1. 2.
[코딩 인터뷰] LeetCode - Two Pointers - 125. Valid Palindrome 안녕하세요 여러분! 🎉 오늘은 재미있고 흥미로운 프로그래밍 문제를 함께 풀어볼 거예요. 🚀 이번에 다룰 문제는 문자열이 회문(palindrome)인지 아닌지를 판별하는 문제입니다. 🧐 회문이란 앞으로 읽으나 뒤로 읽으나 동일한 문자열을 말해요. 문자열 처리 능력을 향상시키는 데 도움이 되는 문제죠! 📚 🎯 문제 설명: 주어진 문제는 문자열 s가 회문인지 판별하는 것입니다. 이때, 모든 대문자는 소문자로 변환되고, 비문자와 숫자가 아닌 문자들은 제거됩니다. 릿코드 문제보기 알아야 할 개념 공부하기 📘: 회문(Palindrome): 앞뒤가 똑같은 문자열. 예를 들어, 'radar', 'level' 등. 문자열 처리: Python에서 문자열을 소문자로 변환(lower()), 비문자 제거 등의 처리 방법. 문자.. 2024. 1. 1.
[알고리즘] 보이어-무어 다수결 알고리즘 - 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.
[코딩인터뷰] Leetcode - Array/String - 88. Merge Sorted Array 문제 - 88. Merge Sorted Array https://leetcode.com/problems/merge-sorted-array/?envType=study-plan-v2&envId=top-interview-150 You are given two integer arrays nums1 and nums2, sorted in non-decreasing order, and two integers m and n, representing the number of elements in nums1 and nums2 respectively. Merge nums1 and nums2 into a single array sorted in non-decreasing order. The final sorted array .. 2023. 12. 25.
[A/B Testing] 🔬 A/B 테스팅 마스터하기: 고급 전략과 실전 사례! 여러분, 안녕하세요! A/B 테스팅의 기초를 다진 후, 이제는 좀 더 고급 기법과 실제 사례를 살펴볼 차례입니다. 🚀 A/B 테스팅은 단순히 두 옵션을 비교하는 것을 넘어서, 복잡한 사용자 경험과 변화하는 시장 동향에 발맞춘 의사결정을 가능하게 하는 강력한 도구입니다. 이번 포스트에서는 A/B 테스팅을 한 단계 더 깊이 이해하고, 데이터 기반 결정이 어떻게 비즈니스 성과를 극대화하는지 알아보겠습니다. ✨ 2023.12.23 - [AI/AB Testing] - [AB Testing] 🔍 A/B 테스팅 입문: 데이터로 의사결정하는 첫걸음! [AB Testing] 🔍 A/B 테스팅 입문: 데이터로 의사결정하는 첫걸음! 안녕하세요, 오늘은 A/B 테스팅, 즉 A/B 테스트의 기초부터 차근차근 알아보는 시간을 갖.. 2023. 12. 24.
[AB Testing] 🔍 A/B 테스팅 입문: 데이터로 의사결정하는 첫걸음! 안녕하세요, 오늘은 A/B 테스팅, 즉 A/B 테스트의 기초부터 차근차근 알아보는 시간을 갖도록 하겠습니다. 📊 A/B 테스팅은 웹사이트 레이아웃부터 마케팅 이메일까지, 어떤 요소가 사용자 행동에 더 긍정적인 영향을 미치는지를 식별하는 강력한 방법입니다. 🧐 이 포스트에서는 A/B 테스팅의 개념을 이해하고, 기초적인 절차에 대해 배워볼 것입니다. 그럼 시작해볼까요? A/B 테스팅이란? 🤔 개념 이해하기 A/B 테스팅은 두 가지 버전(A와 B)을 비교하는 실험적 접근 방식입니다. 이를 통해 두 버전 중 어느 것이 특정 목표에 더 효과적인지를 결정할 수 있습니다. 이 방법은 웹 개발, 광고, 제품 디자인 등 다양한 분야에서 활용됩니다. 🎯 목표 설정하기 성공적인 A/B 테스트를 위해서는 명확한 목표가 필요합.. 2023. 12. 23.
[코딩 알고리즘] 🚀 투 포인터 기법(Two-Pointer)으로 코딩 인터뷰 정복하기! 안녕하세요, 개발자 여러분! 🌟 코딩 인터뷰에서 빠질 수 없는 배열 문제, 어떻게 효과적으로 해결하고 계신가요? 오늘은 바로 그 답을 드리기 위해 '투 포인터(Two-Pointer) 기법'에 대해 알아볼 거예요. 간단하면서도 강력한 이 기법으로 복잡한 배열 문제를 어떻게 신속하고 우아하게 풀 수 있는지, 함께 살펴보겠습니다! 🧐🔍 투 포인터 기법의 이해와 활용 🔍 투 포인터 기법의 개념 배열을 순회하며 문제를 해결하기 위해 두 개의 포인터를 사용하는 방법입니다. 보통 하나는 배열의 시작점에, 다른 하나는 끝점에 두거나 같은 지점에서 출발해 다른 방향으로 이동시키기도 해요. 투 포인터 기법의 다양한 활용 투 포인터 기법에는 여러 변형이 있어서, 문제의 종류에 따라 가장 적합한 방법을 선택할 수 있습니다. .. 2023. 12. 22.
[Python] 파이썬에서의 리스트 조작: append() vs. extend() 🐍 리스트는 파이썬 프로그래밍에서 데이터를 저장하고 관리하는 데 가장 기본이 되는 자료형 중 하나입니다. 프로그래머가 자주 마주치는 상황 중 하나는 리스트에 새로운 요소를 추가하는 것이죠. 파이썬에서는 이 작업을 위해 주로 append()와 extend() 두 가지 메서드를 제공합니다. 그런데 여러분, 혹시 이 둘의 차이점을 확실히 알고 계신가요? 🤔 오늘은 append()와 extend()의 기능과 사용법, 그리고 각각의 상황에서 어떻게 사용되는지를 알아보는 시간을 가져보려 합니다. append() vs. extend() 🐍 append()의 사용법과 특징 append() 메서드는 리스트의 끝에 하나의 요소를 추가합니다. 이 메서드는 단일 객체를 인수로 받으며, 해당 객체를 리스트의 마지막 요소로 삽입합니.. 2023. 12. 20.
[LLM] 생성형 AI - 랭체인 구성요소 공부하기: AI 언어 모델의 혁신적 활용 🚀 언어는 우리가 소통하는 기본 수단이며, 인공지능(AI) 기술의 발전은 이 기본 수단을 활용하는 방식을 전환하고 있습니다. 특히, 대규모 언어 모델(Large Language Models, LLMs)은 우리가 정보를 처리하고 지식을 추출하는 방식에 혁신을 가져왔죠. 이 중심에는 랭체인(LangChain)이 있습니다. 랭체인은 다양한 LLM들, 예를 들어 ChatGPT, 그리고 이와 유사한 모델들을 활용하여 더욱 강력하고 다기능적인 애플리케이션을 구축할 수 있는 개발 프레임워크입니다. 🤖 랭체인의 구성요소 랭체인은 LLM을 효율적으로 사용하기 위한 여러 추상화된 구성요소를 제공합니다: 모델 (Models) 랭체인에서의 모델은 대규모 데이터셋으로 훈련된 LLMs입니다. 이 모델들은 텍스트 생성, 질문 응답, .. 2023. 12. 19.
[SQL] SUBQUERY 서브쿼리의 마법 🧙‍♂️✨ 안녕하세요, 오늘은 SQL에서 서브쿼리를 활용하는 마법 같은 방법에 대해 알아볼 거예요. 특히, 정책 소유자들의 고유 위치에 따른 총액 계산에 대한 최적화된 쿼리를 소개할게요. 준비되셨나요? 그럼 마법의 세계로 출발해 볼까요? 🚀📚 서브쿼리? 🌊💡 서브쿼리란 무엇인가: 서브쿼리(Subquery)는 다른 쿼리 내부에 포함된 쿼리입니다. 즉, 메인 쿼리의 일부로 작동하며, 이를 통해 더 복잡하고 다층적인 데이터 검색이 가능합니다. 🤿📚 서브쿼리의 사용 예: 서브쿼리는 데이터를 필터링하거나, 복잡한 계산을 수행하고, 메인 쿼리의 조건을 지정하는 데 사용될 수 있습니다. 예를 들어, 특정 부서에서 가장 많은 판매를 한 직원을 찾거나, 평균 이상의 수익을 올린 제품을 검색할 때 서브쿼리를 활용할 수 있죠. 🏅🛒 .. 2023. 12. 18.
[LLM] 생성형 AI의 미래: 더 똑똑한 LLM을 향한 여정 LLM의 눈부신 진화 🚀🤖 안녕하세요, 여러분! 오늘은 대형 언어 모델(Large Language Models, LLM)이 어떻게 더 똑똑해질 수 있는지에 대해 이야기해보려고 해요. 🌟 LLM이란, GPT-4나 BERT와 같이 엄청난 양의 데이터로 훈련된 인공지능 모델을 말하는데요, 이들은 문장을 이해하고, 생성하는 놀라운 능력을 가지고 있죠. 📚🧠 하지만 이러한 모델들도 계속해서 발전해야만 해요. 그 발전을 이끄는 몇 가지 방법들에 대해 한번 살펴보도록 할게요! LLM을 더욱 똑똑하게 만드는 네 가지 방법들 🛠️📈 1. Prompting: 질문을 잘 던지자! 🎯❓ LLM에게 올바른 방향을 제시하는 것은 마치 정교한 맵핑 없이 보물을 찾는 것과 같아요. 🗺️✨ Prompting은 모델에게 특정한 형태의 .. 2023. 12. 17.
[SQL] SQL에서 FULL JOIN과 "1=1" 구문 이해하기 🧐 SQL을 다루다 보면, 테이블을 조인하는 것은 매우 기본적이면서도 중요한 작업이에요. 이를 통해 두 개 이상의 테이블에서 관련된 컬럼을 기준으로 행을 결합할 수 있죠. 하지만, 특정 상황에서 유용하거나 눈에 띄는 구문이 하나 있어요: FULL JOIN을 1=1 조건과 함께 사용하는 것이죠. 이게 무엇을 의미하고 사용했을 때 무슨 영향이 있는지 살펴보도록 해요. 🕵️‍♂️ FULL JOIN이란? FULL JOIN, 즉 완전 외부 조인은 두 테이블의 모든 행을 결합하고, 한쪽 테이블에서 매치가 없는 경우 NULL로 채우는 방법이에요. 이는 매칭되는 행이 다른 테이블에 없어도 양쪽 테이블의 모든 레코드를 보고 싶을 때 사용되죠. "1=1" 조건이란? 1=1 조건은 항상 참이 되는 거죠. SQL 문에서 이를 사.. 2023. 12. 12.
[SQL] 데이터 통찰의 열쇠: LAG로 이전 날짜의 데이터 비교하기 SQL의 LAG 함수는 데이터 분석에 있어 중요한 도구 중 하나입니다. 이 함수는 현재 행에서 지정된 수의 행 앞에 있는 데이터를 검색합니다. 이를 통해 현재 데이터와 이전 데이터를 비교하거나 시계열 데이터에서 이전 시점의 값을 분석하는 데 사용됩니다. 온도 변화 추적하기: LAG 함수로 이전 날짜의 날씨 비교하기 예를 들어, 날씨 데이터가 있는 테이블 Weather가 있고, 각 날짜(recordDate)와 해당 날짜의 온도(temperature)를 기록하고 있다고 가정해 봅시다. 여기서 LAG 함수를 사용하면, 각 행의 온도와 이전 날짜의 온도를 쉽게 비교할 수 있습니다. SELECT id, recordDate, temperature, LAG(recordDate, 1) OVER (ORDER BY rec.. 2023. 12. 11.
반응형