stack(6)
-
[Leetcode/Medium] 중복 문자 제거 (316. Remove Duplicate Letters, Swift)
https://leetcode.com/problems/remove-duplicate-letters/description/ 🤔 문제 설명문자열이 주어지면 모든 문자가 "한 번"만 나타나도록 중복된 문자를 제거한 후, "만들어지는" 모든 문자열 중에서 결과가 사전 순서 (Lexicographical order)에서 가장 작은 것인지 확인하라.*사전 순서 (Lexicographical order)의 의미 : a는 b보다 사전적으로 작다. + 문자 "ab"와 "abc"가 있다면 "ab"가 사전적으로 더 작다.s = "bcabc"// "abc"s = "cbacdcbc"// "acdb" // 중복된 문자를 제거한 "abcd"를 사전 순으로 재정렬하라는 의미가 아님.// 주어지는 문자열의 순서는 유지되는 상황에서 ..
2024.07.14 -
[Leetcode/Medium] 일일 온도 (739. Daily Temperatures, Swift)
https://leetcode.com/problems/daily-temperatures/ 🤔 문제 설명매일의 화씨온도 리스트 temperatures를 입력받아서, 더 따뜻한 날씨를 위해서는 며칠을 더 기다려야 하는지를 구하라.만약, 현재로부터 더 따뜻한 날이 이후에 없을 경우에는 Array에 0을 담아 출력한다.temperatures = [73,74,75,71,69,72,76,73]// [1,1,4,2,1,1,0,0] 💡 풀이(Index, temperature)로 이루어진 튜플(Tuple)과 스택(Stack)을 함께 활용해서 문제를 풀었다.기본 스택의 원칙은 스택의 top값과 반복 중인 현재 온도를 비교해서 더 따뜻한 날씨가 들어온 경우에는 pop을 한다는 것이다.그리고 인덱스의 차이값을 활용해서 따..
2024.07.14 -
[Leetcode/Easy] 유효한 괄호 (20. Valid Parentheses, Swift)
https://leetcode.com/problems/valid-parentheses/description/ 🤔 문제 설명괄호 '(', ')', '{', '}', '[', ']'로 되어있는 문자열이 주어지면 아래와 같은 규칙에 맞아 유효한지를 판단하라.열린 괄호는 동일한 유형의 괄호로 닫아야 한다. -> '(' 괄호인 경우, ')' 괄호로 닫아야 한다.열린 괄호는 올바른 순서로 닫아야 한다. -> '({' 괄호인 경우, '})' 괄호 순서대로 닫아야 한다. 💡 풀이스택(Stack) 자료형을 사용한다면 풀 수 있는 문제였다.문자열을 하나씩 반복하면서 볼 수 있는 경우는 크게 두 가지. 열린 괄호가 오는 경우와 닫힌 경우가 오는 경우이다.열린 괄호가 오는 경우에는 스택에 push해준다.닫힌 괄호가 오는 ..
2024.07.12 -
[Programmers/Lv. 1] 크레인 인형뽑기 게임 (2019 KAKAO 개발자 겨울 인턴십, Python)
📎 링크 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 🤔 문제설명, 제한사항, 입출력 예 "크레인 인형뽑기 게임"의 로직을 구현하는 문제다. 게임은 1x1 크기의 칸으로 이루어진 NxN 크기의 정사각 격자로 이루어진 화면에서 이루어지며, 위쪽에 인형을 잡기 위한 크레인과 크레인으로 잡은 인형을 담을 별도의 바구니가 있다. 모든 인형은 1x1 크기의 격자 한 칸을 차지하며, 격자 아래 칸부터 차곡차곡 쌓여있는 모습을 띤다. 사용자는 크레인을 좌우로 움직여서 가장 위에 있는 인형을 하나 집어 올릴 수 있으며, 이 집어 올린 인형은 바구니의 가장 아래 칸부터..
2023.11.06 -
[Programmers, Lv.2] 코딩테스트 고득점 Kit - 스택/큐 (2) (Python)
1. 올바른 괄호 (문제 설명, 제한사항, 입출력 예) 기호 "("와 ")"로만 이루어진 문자열이 주어졌을 때, 문자열이 올바른 괄호로 짝지어져 있으면 True를, 올바르지 않은 괄호로 짝지어져 있으면 False를 반환하라는 문제이다. 여기서 괄호가 올바르게 짝지어졌다는 것은 "(" 문자로 열렸으면, 반드시 ")" 문자로 닫히는 짝이 이루어져 있어야 한다는 것을 의미한다. (내가 생각한 풀이 과정) 문자열 s를 반복하면서 괄호를 체크한다. "("를 만나게 되면 카운트를 1 증가, ")"를 만나게 되면 카운드를 1 감소시켜 최종적으로는 카운트가 0이 되면 True를 반환한다. (-> 열린 괄호와 닫힌 괄호의 수가 같다는 것을 의미) 단, 여기서 추가적으로 열린 괄호가 없을 때 닫힌 괄호가 먼저 오는 경우를..
2023.09.22