stack(6)
-
[Programmers] 뒤에 있는 큰 수 찾기
https://school.programmers.co.kr/learn/courses/30/lessons/154539 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 설명 스택을 활용하는 문제이다. 처음엔 이중 반복문에 break을 활용하여 해결하려 했으나 테스크 테이스 20~23에서 시간 초과가 발생하였고 이를 해결하기 위해 스택을 활용하여 해결했다. 스택 import java.util.Stack; class Solution { public int[] solution(int[] numbers) { int[] answer = new int[numbers..
2023.09.06 -
[Baekjoon] 6198번: 옥상 정원 꾸미기
https://www.acmicpc.net/problem/6198 6198번: 옥상 정원 꾸미기 문제 도시에는 N개의 빌딩이 있다. 빌딩 관리인들은 매우 성실 하기 때문에, 다른 빌딩의 옥상 정원을 벤치마킹 하고 싶어한다. i번째 빌딩의 키가 hi이고, 모든 빌딩은 일렬로 서 있고 오른쪽으 www.acmicpc.net 문제 설명 빌딩 관리인들은 다른 빌딩의 옥상을 벤치마크하고 싶어 한다. 그래서 자기 빌딩보다 낮은 빌딩들의 옥상 정원을 보며 본인 소유의 빌딩 옥상 정원에 대한 고민을 한다. 모든 빌딩은 일렬로 서 있고 오른쪽으로만 볼 수 있다. 그리고 본인 소유 빌딩과 높이가 같거나 큰 경우엔 옥상을 볼 수 없다. 1번 관리인은 2, 3, 4 번 빌딩의 옥상을 볼 수 있다. 2번 관리인은 다른 빌딩의 옥..
2023.03.27 -
[Baekjoon] 9935번: 문자열 폭발
https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 설명 먼저 문자열 한 줄이 주어진다. 그 다음 폭발 키워드 문자열이 주어진다. 만약 문자열에 폭발 키워드 문자열이 있으면 해당 문자열이 폭발하고 앞 뒤 문자열은 합쳐진다. 이때 폭발이 모두 끝난 후 남은 문자열을 출력하면 된다. 만약 남은 문자열이 없는 경우, 즉 모든 문자열이 폭발한 경우 FRULA를 출력한다. 스택이나 StringBuilder를 활용하면 효율적으로 해결할 수..
2023.03.17 -
[Baekjoon] 10799번: 쇠막대기 - Java
https://www.acmicpc.net/problem/10799 10799번: 쇠막대기 여러 개의 쇠막대기를 레이저로 절단하려고 한다. 효율적인 작업을 위해서 쇠막대기를 아래에서 위로 겹쳐 놓고, 레이저를 위에서 수직으로 발사하여 쇠막대기들을 자른다. 쇠막대기와 레이저 www.acmicpc.net 문제 설명 일련의 괄호 문자열이 주어지고 잘려진 쇠막대기 조각의 총 개수를 구하면 된다. 풀이 방법 괄호 문제의 대표적인 해결 방법인 스택을 활용하면 된다. 먼저 여는 괄호인 경우는 일단 스택에 넣는다. 그러다 닫는 괄호를 만나면 그 때 레이저인지 쇠막대인지를 판단한다. 만약 레이저라면 이때까지 넣어뒀던 쇠막대를 모두 자르게 되므로 결과값에 스택의 사이즈만큼 더해준다. 만약 쇠막대라면 그 쇠막대의 길이가 거..
2023.02.22 -
[Baekjoon] 2493번: 탑 - Java
https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 문제 설명 문제가 조금 장황한 것 같지만 핵심은 간단하다. 주어진 탑들이 마지막부터 반대 방향으로 레이저를 발사하는데 자신보다 높은 탑만 신호를 받을 수 있다. 즉, 마지막부터 자신보다 높은 가장 가까운 탑을 찾아내면 되는 것이다. 사이트 예제를 그림으로 설명하면 다음과 같다. 이는 스택을 활용하면 효율적으로 해결할 수 있다. 오등큰수와 비슷한 문제이다. 풀이 방법 핵심 로직은 다음과 같다. 중..
2023.02.09 -
[Baekjoon] 17299번: 오등큰수 - Java
https://www.acmicpc.net/problem/17299 17299번: 오등큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 문제 설명 오른쪽에 있는 숫자 중 자신보다 수열에서 많이 등장한 가장 가까운 수를 찾으면 된다. 문제 자체는 이해하면 어렵지 않지만 구현에서 고생했다. 풀이 방법 1. 이중 반복문(시간 초과) 처음에는 반복문을 통해 순회하면서 해결하려고 했다. 하지만 시간 초과가 발생했다. for (int i = 0; i < N; i++) { int curElem = elems[i]; boolean isAppearence =..
2023.02.08