반응형
🔺 문제
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
🔺 코드
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
|
import java.util.*;
class Solution {
public int solution(int[] order) {
int answer = 0 ;
Stack<Integer> stack = new Stack<>();
int idx = 0;
for(int i = 1 ; i <= order.length ; i++) {
if(order[idx] != i) { // 배열의 idx번째 원소가 될 때까지 스택에 값 넣음
stack.push(i);
}
else { // 배열의 idx번째 원소값과 같아지면, 일치하는 것이므로 정답 +1하고, 다음 원소 찾기 위해 idx도 +1
idx++;
answer++;
}
// 스택이 공집합이 아닐 때까지 & 맨 위 원소가 현재 위치 원소와 같다면, 정답 +1
while(!stack.isEmpty() && stack.peek() == order[idx]) {
stack.pop();
idx++;
answer++;
}
}
return answer;
}
}
|
cs |
🧩 해결 아이디어
• 스택
- 1부터 order 배열의 길이만큼 반복문을 돌리며
└ 배열의 idx번째 원소값과 다르다면, 해당 숫자가 배열의 idx번째 원소가 될 때까지 스택에 값 넣음
└ 배열의 idx번째 원소값과 같아지면, 일치하는 것이므로 정답 +1하고, 다음 원소 찾기 위해 idx도 +1
└ 스택이 공집합이 아니고, 맨 위 원소가 현재 위치 원소와 같다면, 정답 +1
💬 느낀 점
스택 쓸 생각은 했는데
구현을 못 해서 못 풀었다네요......
복습을 합시다..
1회독 | 2회독 | 3회독 | 4회독 | 5회독 |
V |
(참고)
프로그래머스 택배상자 (JAVA)
https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞
bacchus-lover.tistory.com
반응형
'코테 > 프로그래머스' 카테고리의 다른 글
[프로그래머스/Lv. 2] 요격 시스템 (JAVA) (0) | 2023.12.23 |
---|---|
[프로그래머스/Lv. 3] 가장 긴 팰린드롬 (JAVA) (0) | 2023.11.29 |
[프로그래머스/Lv. 2] [1차] 뉴스 클러스터링 (JAVA) (0) | 2023.11.26 |
[프로그래머스/Lv. 1] 개인정보 수집 유효기간 (JAVA) (0) | 2023.11.25 |
[프로그래머스/Lv. 1] 성격 유형 검사하기 (JAVA) (0) | 2023.11.22 |