본문 바로가기

알고리즘

(43)
Group Anagrams | LeetCode 778 | Python3 🐍 📄 목차 🤔 문제 : Group Anagrams | LeetCode 778 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/103/array-and-strings/778/ 문자열의 리스트가 주어졌을때, 같은 문자 구성으로 순서만 바뀐 문자열을 묶어서 반환하는 문제입니다. 예를들어 abc, acb, bac, bca, cab, cba가 하나의 그룹으로 묶입니다. 💡 풀이 1. 접근 - '같은 문자들로 구성된 문자열'임을 어떻게 판단할까? 이 문제의 핵심은 같은 문자들로 구성된 문자열임을 어떻게 판단할지입니다. 같은 문자들로 구성된 문자열은 같은 문자열로 바꿔서 판단하면 되겠죠. 저는 문자열을 오름차순으로 정렬하는 방..
[LEETCODE] Python3 🐍 | Easy Collections 추천문제 및 풀이 (2) Sorting&Searching, Dynamic Programming, Design, Math, Others https://leetcode.com/explore/interview/card/top-interview-questions-easy/ Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com 일주일에 거쳐 푼 21문제에 대한 풀이 2탄 입니다. 카테고리 : Sorting&Searching, Dynamic Programming, Design, Math, Others..
Longest Substring Without Repeating Characters | LeetCode 779 | Python3 🐍 🤔 문제 : Longest Substring Without Repeating Characters | LeetCode 779 문제: https://leetcode.com/explore/interview/card/top-interview-questions-medium/103/array-and-strings/779/ 어떤 문자열이 주어졋을 때 그 문자열의 substring중에서 substring내에 중복된 character가 없고 길이가 가장 긴 substring 위 조건에 맞는 substring의 길이를 반환하는 문제입니다. 💡 풀이 1. 중복 character의 index를 기록하여 substring길이 계산 1. 주어진 문자열을 순회하며, 이전에 나온 character와 중복된 character가 있는지..
[LEETCODE] Python3 🐍 | Easy Collections 추천문제 및 풀이 (1) Array, String, Linked List, Tree LEETCODE의 Top Interview Questions의 Easy Collection을 풀어보았습니다. 전체 문제를 다 풀지는 않았고 각 챕터별로 recommended 라고 나와 있는 문제만 풀었습니다. (string이랑 array는 문제가 어렵지 않아 대부분 skip했습니다.) 쉬운 문제도 많았지만, 코테에 나오는 주요 유형들을 되짚어보기 위해 가벼운 마음으로 풀어보기에는 적합했던 것 같습니다. 코테 준비를 오랜만에 하신다면 본격 Medium, Hard 풀기 전에 한 번 훑어보시기를 추천드립니다. https://leetcode.com/explore/interview/card/top-interview-questions-easy/ Explore - LeetCode LeetCode Explore is ..
Longest Valid Parentheses | LeetCode 32 🤔 문제 : Longest Valid Parentheses | LeetCode 32 문제: https://leetcode.com/problems/longest-valid-parentheses/ 문제에서 말하는 Valid Parenntheses는 괄호가 열린만큼 잘 닫힌 형태의 문자열이다. () : valid )( : invalid (() :invalid ()) :invalid (()()) : valid텍스트 어떤 문자열이 주어졌을 때 그 안에서 가장 긴 valid parentheses의 길이를 찾는 문제이다. 💡 풀이 접근 - valid parentheses는? valid parentheses를 판단하는 방법으로는 문자열을 읽어나가며 stack에 ( 이 나오면 push, )이 나오면 pop을 하는 직관적..
Maximum Frequency Stack | LeetCode 895 🤔 문제 : Maximum Frequency Stack | LeetCode 895 문제 : https://leetcode.com/problems/maximum-frequency-stack/ 문제에서 만들고자 하는 Frequncy Stack은 기존 stack과 같은 구조를 같지만 pop 할 때 단순히 가장 위에 있는 원소가 아닌 가장 많이 들어있는 원소들 중 가장 위에 있는 원소를 반환함 => 각 원소가 몇 번 나왔는지를 효율적으로 count하고 caching할 방법이 필요함 💡 풀이 1. Pop할 때 Stack 내 모든 원소를 세어 가장 많이 나온 원소를 반환 처음에는 Time Limit Exceed 신경쓰지 않고, 가장 단순한 풀이로 풀어봅니다. push 는 기존 stack과 동일하고 pop 은 전체 ..
삼성 SW 역량테스트 기출 :: 연구소 문제링크 : https://www.acmicpc.net/problem/14502 난이도 : 중 /* * 연구소 : https://www.acmicpc.net/problem/14502 */ #include #include #include #define FOR(i, n) for(int i = 0 ; i > n >> m; map.resize(n); FOR(i, n) { map[i].resize(m); FOR(j, m) { cin >> map[i][j]; if (map[i][j] == 0) empty...
삼성 SW 역량테스트 기출 :: 퇴사 문제 링크 : https://www.acmicpc.net/problem/14501 난이도 : 하 /* * 퇴사 : https://www.acmicpc.net/problem/14501 */ #include #include #define FOR(i, n) for(int i = 0 ; i > n; FOR(i, n){ cin >> t[i]; cin >> p[i]; } mmax = INT32_MIN; } // i-1까지 수익이 prev일때, i번째 상담을 하거나 하지 않을 때의 수익 계산 void solve(int i, int pre..