프로그래머스 12973번 - 짝지어 제거하기 요구사항 1. 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾은 후 제거한 뒤, 앞뒤로 문자열을 이어 붙입니다. 2. 1번 과정을 반복해서 문자열을 모두 제거할 수 있으면 1을, 아니면 0을 반환하라. 요구사항 분석 및 풀이과정 연속된 문자열을 모두 제거하는 문제이며 전형적인 스택 문제입니다, 올바른 괄호 쌍을 찾을 때 스택을 사용하는 방법과 동일한 방법으로 구현하면 됩니다. 1. 문자열의 첫 문자부터 순회하여 만약 스택이 비었다면 문자를 추가합니다. 2. 스택이 비어있지 않다면 스택의 가장 위의 문자와 현재 문자가 같은지 확인합니다. (같은 알파벳 2개 붙어있는 짝을 확인하는 작업) 3. 같다면 스택의 가장 위의 문자를 제거하고, 현재 문자도 스택에 넣지 ..
프로그래머스 12909번 - 올바른 괄호 요구사항 1. '(' 문자로 괄호가 열렸으면 반드시 짝지어서 ')' 문자로 괄호가 닫혀야 한다. 2. '(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때 올바른 괄호인지를 반환하라. 3. 올바른 괄호인 경우 true, 잘못된 괄호인 경우 false 요구사항 분석 및 풀이과정 1. 문자열의 문자 배열을 순회하여 '('를 만나면 스택에 넣는다. - ')'이 나타나면 짝을 맞춰 삭제해주기 위해서 보관합니다. 2-1. ')'를 만나면 스택의 가장 위의 원소가 '('이면 정상적으로 짝이 맞으므로 삭제하여준다. 2-2. 만약 스택이 비었거나, 가장 위의 원소가 '('이 아니라면 짝이 맞지 않는 잘못된 괄호 문자열(false)이다. 3. 또한 모든 작업을 마쳤는데 스택..
프로그래머스 72410번 - 신규 아이디 추천 요구사항 1. 주어진 문자열을 주어진 1~7단계의 처리 과정을 거친 후의 추천 아이디를 반환하라. 요구사항 분석 및 풀이과정 1. 정직하게 각 단계의 처리 과정에 맞게 처리하여주면 된다. 뇌를 빼고 가능하다. 각 단계마다 메서드를 분할하였으며 각 단계의 처리과정에 해당하는 메서드는 다음과 같다. 1단계 : toLower(String id) 2단계 : eraseDenyPattern(String id) 3단계 : eraseContinuousPoint(String id) 4단계 : trimPoint(String id) 5단계 : requireNonEmpty(String id) 6단계 : cutOver(String id, 16) 7단계 : lastLetterRepe..
프로그래머스 64061번 - 크레인 인형뽑기 게임 요구사항 1. 크레인을 작동시킨 후, 해당 멈춘 위치에서 가장 위에 있는 인형을 집어 바구니에 차곡차곡 쌓습니다. 2. 동일한 인형이 바구니에 연속적으로 쌓인 경우, 두 인형은 터지며, 작업이 끝날 때까지 터트려져 사라진 인형의 개수를 반환하라. 3. 격자(board)에 인형이 없을 경우 0, 있을 경우 인형의 종류를 나타내는 번호가 담겨있습니다. 요구사항 분석 및 풀이과정 1. 크레인을 움직인 후 크레인을 내려 인형이 있을 경우(격자에 담긴 값이 0이 아닌 경우) 격자에서 제거한 후, 바구니에 담습니다. 2-1. 바구니가 비어있을 경우 그냥 담고, 바구니가 비어있지 않을 경우 바구니의 가장 위의 인형과 담을 인형의 종류를 비교합니다. 2-2. 동일한 인..
프로그래머스 12906번 - 같은 숫자는 싫어 요구사항 1. 배열에서 연속적으로 나타나는 숫자는 하나만 남기고 모두 제거하여 반환한다. 2. 단, 기존 배열의 순서는 그대로 따른다. 요구사항 분석 및 풀이과정 1. 연속적으로 나타나는 것을 제거하는 건 전형적인 Stack을 사용하는 문제 유형이다. 2. 배열을 순차적으로 순회한다. 3. 만약 Stack이 비어있지 않고 가장 최근에 삽입한(peek) 원소가 현재 원소와 같다면 연속적으로 등장하였다는 뜻이므로 삽입하지 않고 넘어간다. 4. 위의 상황에 해당하지 않으면 Stack에 삽입한다. 소스코드 작성 import java.util.Stack; class Solution { public int[] solution(int[] arr) { Stack resul..
- Total
- Today
- Yesterday
- TDD
- 비트연산
- 연결리스트
- 코딩인터뷰
- Uber
- kotlin
- dp
- 정렬
- 코드 스니펫
- 문자열
- set
- k8s
- 쓰레드
- 우선순위큐
- dsu
- BFS
- JPA
- Java
- sql
- 스트림
- 프로그래머스
- 오늘의집
- 탐욕법
- 카카오
- 회고
- 알고리즘
- dfs
- 구현
- 해쉬
- 스택
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |