컴공 일기267
게시글 주소: https://orbi.kr/00071465085
https://school.programmers.co.kr/learn/courses/30/lessons/64061
오늘도 프로그래머스 스택 문항..
카카오 19 인턴쉽 문항이네요. 아마 코테쯤 되려나요?
사실 스택 문제는 스택을 이용해야 한다는 사실을 자각하면 어렵진 않습니다.
복병은, 이 문제가 스택 문제라는 사실을 자각하지 못하는 것에 있죠.
문제에서는 대놓고… ‘차곡차곡’이라든가, ‘쌓는다’라든가, ‘사라진다’는 표현을 해줬으므로..
stack을 이용해서 풀면 되겠다는 확신이 들죠. 그래서인지, 구현의 복잡성은 나름 있음에도 lv이 1로
잡힌 것이 아닌가 하구요.
#include <string>
#include <vector>
#include <stack>
using namespace std;
int solution(vector<vector<int>> board, vector<int> moves)
{
int row = board.size();
vector<stack<int>> st(row+1); //moves의 인덱스 1부터 이용하므로 1-based index
for(int i=0; i<row; i++)
{
for(int j=row-1; j>=0; j--)
{
//0이 아니라면 인형이므로 스택에 담는다.
if(board[j][i] != 0)
{
st[i+1].push(board[j][i]);
}
}
}
stack<int> basket;
int remove = 0;
for(int num : moves)
{
//번호에 해당하는 스택이 비어 있지 않으면
if(!st[num].empty())
{
//인형을 꺼낸다.
int toy = st[num].top();
st[num].pop();
//꺼낸 인형과 바구니 스택의 top에 위치한 인형이 같으면
if(!basket.empty() && toy == basket.top())
{
//바구니에서 그 인형을 꺼내고, 삭제한다. 두 인형을 지운 셈이므로 remove엔 2를 더한다.
basket.pop();
remove += 2;
}
//꺼낸 인형과 바구니 스택의 top에 위치한 인형이 다르면 그냥 바구니에 인형을 push 한다.
else
{
basket.push(toy);
}
}
}
return remove;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
의치대 사탐도 이제 되는거죠? 4 0
국어 고정 높1 영어 고정만점 22수능 미적 96 서울대고 사탐은 출제자급...
-
'나이 처먹고' 라는 말을 들었다.. 내 화법이 그렇게 올드한가..
-
더프는 시대인재 애들이 안보니까 등급이 더 낮나? 시대인재 애들 보눈 서바가 더 믿을만 하ㅁ??
-
수능원서접수 주말에도 하죠? 4 0
지금 가도 괜찮은 거 맞져?
-
지구 사설 점수 기록 2 0
Oz 시즌 1 1회 34 2회 45 3회 36 4회 44 Oz 시즌 2 1회 45...
-
진심너무화나는데 4 1
집가서 국어 실모하나 더가져올까
-
빅포텐이랑 불꽃n제랑 난이도 1 0
비교하면 어디가 더 높나요?
-
킬캠 s1 시즌1 96이면 3 0
수능에 갖다놧을때 백분위 얼마뜨나여 진짜 잘 몰라서 그럼
-
아니 왜? 6 1
아니 이건 아니잠ㅎ아
-
8덮 수학 2 0
이정도로 수능나오면 1컷 몇일까요 미적기준
-
수능형이 오히려 나음 이러면어떡하지 방학내내 수능형 문제만 풀었음 고쟁이 쎈...
-
붱모 확통 풀고 1 0
후기 남길게여어어어어어어어이
-
뭐하면 받아볼 수 있을까요
-
국어 일관성 ㅁㅌㅊ? 6 1
6모 언매 90 (1컷 92) 이감 5-1 87 (1컷 88) 상상 4-1 86...
-
ex) 그늘진, 멋졌다, 어린이, 해님 합성어인지 파생어인지, 직접구성성분은 다시...
첫번째 댓글의 주인공이 되어보세요.