컴공 일기265
게시글 주소: https://orbi.kr/00071396715
https://school.programmers.co.kr/learn/courses/30/lessons/76502
프로그래머스 문제입니다.
스택을 이용해, 입력된 괄호끼리 짝을 다 맞출 수 있는지를 판단하는 겁니다.
‘짝’이라는 것을 어떻게 프로그래밍 언어로 표현할 것이냐를 묻고 있는데, 가장 일반적인 접근은 조건문이죠.
if(stack.top == ‘(‘ && input == ‘)’) // true
if(stack.top == ‘{ && input == ‘}’) // true
if(stack.top == ‘[‘ && input == ‘]’) // true
이런 식으로요.
실제로 제가 기술했던 코드에서도 조건문에 기반하여 짝을 확인하고 있습니다.
하지만, 조금 더 멋있게 푸는 방법이 있으니 그것은.. C++ STL(standard library)에서 지원하는
unordered_map 자료구조를 이용하는 겁니다.
맵은 일종의 순서쌍이라고 생각하면 되는데 굳이 조건절 반복해서 쓰지말고, 아예 통째로
unordered_map 자료구조에 (’{‘, ’}‘) (’[‘, ’]‘) (’(‘, ’)‘)를 미리 저장해 두고 확인만 해보면 된다는 논리죠.
제가 아래 기술한 풀이보다 unordered_map 자료구조를 이용한 풀이가
readability가 더 좋을 겁니다.
다만 뭐… 이 풀이도 나쁜 건 아니죠.
#include <iostream>
#include <string>
#include <stack>
using namespace std;
void answer(string& s, int& ans)
{
stack<char> st;
int size = s.size();
for(int i=0; i<size; i++)
{
//열린 괄호만을 스택에 push
if(s[i] == '(' || s[i] == '[' || s[i] == '{')
{
st.push(s[i]);
}
else
{
//스택이 비어있는 상태라면 짝을 맞출 수 없으므로 종료
if(st.empty()) return;
//괄호끼리 짝을 지을 수 있는지 확인
if(s[i] == ']' && st.top() == '[') st.pop();
else if(s[i] == ')' && st.top() == '(') st.pop();
else if(s[i] == '}' && st.top() == '{') st.pop();
}
}
//문자열 끝까지 확인한 후 스택이 비어있다면 그 문자열은 괄호끼리 짝을 전부 맞출 수 있음
if(st.empty()) ans++;
}
void left_rotation(string& s)
{
int size = s.size();
char first = s[0];
for(int i=0; i< size-1; i++)
{
s[i] = s[i+1];
}
s[size-1] = first;
}
int solution(string s)
{
int size = s.size();
int ans = 0;
for(int i=0; i<size; i++)
{
answer(s, ans);
left_rotation(s);
}
return ans;
}
0 XDK (+0)
유익한 글을 읽었다면 작성자에게 XDK를 선물하세요.
-
베라 기강 안잡냐 1 0
민트초코가 3위라고? 얼탱이가 없네 음식 같지도 않은게 왜 탑3에 드는건데??? 이게 맞는거다
-
맞팔해줄사람 1 0
구함
-
분명 벡터 문젠데 3 0
중등 도형으로만 풀렸음 ?.?
-
사탐 내신 마더텅 ㄷ 자이 0 0
고2 생윤,사문 내신대비 문제집 자이랑 마더텅 중에 뭐가 더 좋나요
-
요즘 사람들에겐 타인에겐 격하게 빡빡한 잣대를 들이밀고, 정작 자신에게는 그럴 수...
-
'대출 사기' 양문석 징역형 집행유예 확정…의원직 상실 2 1
대출사기 혐의를 받는 양문석 민주당 의원이 오늘(12일) 대법원에서 징역형...
-
이게 먹고싶었다 1 0
맛있다
-
26수능 확통30번은 11 1
확통중에 어려운편임요?
-
근데 ㅈㄴ 크지 않음
-
수학 자작 문제 형식 0 0
수학 자작 문제 만들었는데 보기 박스 같은건 어떻게 넣나요? 한글에서 대충 텍스트...
-
내 최애글임 4 0
https://orbi.kr/00077545664/261114%20%EC%B4%88%...
-
아 슬프다 1 0
아..
-
안산버정엔엉뜨잇네 0 0
좋구나
-
민증만들어야되는디 1 0
귀찮아서미루는중임
-
글써진다씨바라ㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏㅏ 16 1
아습박 좀 살것같아 와진짜 카......
-
나도 포코피아 하고싶다고 씨빨
-
수능공부오랜만에하니까 2 0
너무재밌네
-
본인 현역 수능 성적 5 0
언매 미적 영어 물2 화2 순으로 백분위 99 95 2등급 76 65임 ㅁㅌㅊ?
-
그아앙ㄱ 0 0
졸리다
-
실전개념 듣는 게 좋을까요?
-
왔다 26 6
-
먼가 아쉬움 0 1
웹소설은 그림만 있는게 아쉬운것임! 웹툰화 되면 조을듯
-
청국장에 비빔밥 오늘은 싫다고
-
많이 적네 진짜 곧 대학붕괴의 시대가 오는것인가
-
수특 독서(비문학) 인문&예술 01강 자료(사용설명서+변형문제) 0 0
수특 독서(비문학) 인문&예술 01강 자료입니다. 사용설명서+프리미엄 변형 실전...
-
빈순삽 이명학 vs 조정식 2 0
믿어봐 조정식 들었는데 너무 사후적인 느낌이어서 약간 고민중 영어 2등급 정도 되는...
-
오늘은 4 0
내가 슈타게 1기를 다 본날
-
담배 냄새 안빼고 대중교통 타는 흡연자 사형시키는 법 통과시키기
-
매월승리 독서 풀까요?? 0 0
올오카 문학 들으려고 하는데 독서는 안 듣고 마닳 풀고 있었는데 매월승리에 독서...
-
노베 재수생 현실적으로 5 0
안녕하세요 올해 재수를 하기로 결심했는데 현실적으로 평균 3등급으로 올릴 수...
-
아 시발 생과세 까먹엇다 6 2
아씨발 하나도 안 들어서 출석 놓침
-
삼각함수 각변환을 까먹었어 7 1
개념원리 볼까
-
인생이 망할지도 모르는데 말이다… 그저 어느 운 좋은 바보가 우연히 N수를 박고도...
-
느낌이 듬 3 0
지금 문제개많이풀면 수학실력 오를듯 도구들이 머릿속에 채워진거같아
-
정병 ㅈㄴ 오네 5 1
진심 공부해도 안느는것 같고 오히려 계속 떨어지는것 같고 집중 ㅈㄴ 안되는데...
-
"수학과 친구되는 행사" 증평중 파이(π)데이 운영 화제 3 1
(증평=뉴스1) 이성기 기자 = 충북 증평중학교는 파이(원주율)의 날(3월...
-
[단독]미래 선생님에 학폭 가해자가?…사범대 4곳 학폭 이력 지원자 합격 3 0
(서울=뉴스1) 조수빈 기자 = 2026학년도 대학 입시에서 고려대와 경남대 등...
-
주식 -> ㅈㄴ 어려움 7 0
2월에 코스피 날라다니면서 +4천까지 찍혔는데 3/3 나락가면서 그 날 2400에...
-
재수생 국어 독서만 김동욱 듣고 문학은 다른 선생님 들을려는데 어떻게 하면 좋을까요 4 0
김동욱쌤 독서는 좋은데 문학이 별로라 느껴져서 문학을 따로 할려하는데 강민철...
-
세지 vs 생윤 0 0
현역때 세지 사문 선택해서 3 3 나왔습니다. 사문은 고정하고 갈거같은데 세지를...
-
아마 중고딩 대상인 거 같음 나이도 어리고 경력도 없어서 시급 낮더라도 한 학기...
-
물론 3따리라 문제풀다 틀리는건 필연적이고 부끄러워할 필요가 없는데도 문제 틀리면...
-
왜 작년에 한걸 올해도 당연하게 할 수 있을거라 생각하지 5 1
작년엔 하루 11시간씩 공부를 했는데 올해는 7-8시간 하고도 벅찰 수 있는거 아닌가
-
다들 열심히 살자고 4 0
밖에 조금만 돌아다녀도 직장인들 사회생활하는거 보면 진짜 다들 열심히 사는구나...
-
개찐따라서 지금까지는 커뮤만 하면서 놀았는데 나중에도 이렇게 계속 살아도 재밌을지 걱정이 됨
-
칼하트 브랜드 이미지 어떤가요 3 0
친구 생일 선물로 칼하트 모자 사주려고 하는데 브랜드 이슈가 있거나 그거보단 다른...
-
님들이 한의대붙었다면 3 0
치대로 반수재수 하실건가요?? 개원 로봇대체 미래 수요 등등 고려했을때ㆍㆍㆍ
-
요즘 밥 잘 안챙겨먹는 옯비언 4 1
있어?
-
윤리 과목 성적과 철학 재능은 큰 상관은 없습니다. 7 1
너무 당연한 이야기이긴 한데... 제가 수험생 때는 진지하게 '내가 철학을 해보면...

홍컴 다니시는데 냥뱃은 뭔가요 ㄷㄷ
에리카 뱃입니다… 뭐 기념비로 가지고 있는 겁니다.
그렇군요.. 전부터 글 봐왔었는데 정말 열심히 공부하시네요
뭐… 부족하니까요. 재미는 있는데, 할 건 많아보이고, 돈은 벌어야 겠는데 게슴츠레 움직이긴 싫고…
이센스를 좋아하시나요?
바퀴가 되든가, 바퀴에 깔리든가.
난 다른 차선에 세우고 깜빡일 켜놔.
라는 라인이 하나 있는데 요새는 그 라인대로 사는 중입니다.
깜빡이 켜놓고 재밌는 거 건들이고 있어요 :)
멋있으십니다! 파이팅이에요:)

맞팔해요팔로우는 따로 받지 않아용 ㅠ_ㅠ
ㅠㅠ

대신 이걸 줄게요 :)c언어 주로 공부하시는 건가요
C, C++을 주로 보고 있습니다.
두 언어가 사실 몹시 매우 다른 속성의 언어인데 이 친구들 공통점이
컴퓨터구조 / 네트워크 / 운영체제 핵심을 자세히 살펴볼 수 있는 장점을 갖고 있어요.
말하자면, 전공 공부할 때 요긴한 언어들입니다.
스택문제 너무 어려버
스택… 어렵죠 ㅠㅠㅠ
와 꾸준하시다 멋져요
오랜만에 뵙습니다. 감사합니다 :)