[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ(C++)

2023. 7. 12. 11:00ยท๐Ÿ–ฅ๏ธ Study Note/Coding Test

https://school.programmers.co.kr/learn/courses/30/lessons/76502

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

๋ฌธ์ œ ์„ค๋ช…

๋‹ค์Œ ๊ทœ์น™์„ ์ง€ํ‚ค๋Š” ๋ฌธ์ž์—ด์„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๊ณ  ์ •์˜ํ•ฉ๋‹ˆ๋‹ค.

  • (), [], {} ๋Š” ๋ชจ๋‘ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ A๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, (A), [A], {A} ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, [] ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ, ([]) ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.
  • ๋งŒ์•ฝ A, B๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ผ๋ฉด, AB ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, {} ์™€ ([]) ๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด๋ฏ€๋กœ, {}([]) ๋„ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ž…๋‹ˆ๋‹ค.

๋Œ€๊ด„ํ˜ธ, ์ค‘๊ด„ํ˜ธ, ๊ทธ๋ฆฌ๊ณ  ์†Œ๊ด„ํ˜ธ๋กœ ์ด๋ฃจ์–ด์ง„ ๋ฌธ์ž์—ด s๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์ง‘๋‹ˆ๋‹ค. ์ด s๋ฅผ ์™ผ์ชฝ์œผ๋กœ x (0 ≤ x < (s์˜ ๊ธธ์ด)) ์นธ๋งŒํผ ํšŒ์ „์‹œ์ผฐ์„ ๋•Œ s๊ฐ€ ์˜ฌ๋ฐ”๋ฅธ ๊ด„ํ˜ธ ๋ฌธ์ž์—ด์ด ๋˜๊ฒŒ ํ•˜๋Š” x์˜ ๊ฐœ์ˆ˜๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

๋‚ด ํ’€์ด

๊ด„ํ˜ธ ๊ฒ€์ฆ์€ stack์œผ๋กœ, ๊ด„ํ˜ธ ๋ฌธ์ž์—ด ํšŒ์ „์€ queue๋กœ ๊ตฌํ˜„ํ–ˆ๋‹ค. 2์ค‘ ๋ฐ˜๋ณต๋ฌธ์„ ๋Œ์•„์•ผํ•ด์„œ ์‹œ๊ฐ„ ๋ณต์žก๋„๊ฐ€ ๊ฑฑ์ • ๋˜์—ˆ๋Š”๋ฐ, ๋‹คํ–‰ํžˆ s์˜ ๊ธธ์ด๊ฐ€ 1,000์ดํ•˜๋กœ ์ตœ๋Œ€ ๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ 1,000,000 ์ •๋„๋ผ ์‹œ๊ฐ„ ์ดˆ๊ณผ๋Š” ๋‚˜์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค.

#include <string>
#include <vector>
#include <queue>
#include <stack>

using namespace std;

int solution(string s) {
    int answer = 0;
    queue<char> q;
    
    for(auto c : s)
    {
        q.emplace(c);
    }
    
    for(int i = 0; i < s.size(); ++i)
    {
        queue<char> copy = q;
        stack<char> st;
        
        while(!copy.empty())
        {
            char front = copy.front();
            copy.pop();
            
            if(!st.empty())
            {
                char top = st.top();
                if(front == ']')
                    if(top == '[')
                    {
                        st.pop();
                        continue;
                    }
                
                if(front == '}')
                    if(top == '{')
                    {
                        st.pop();
                        continue;
                    }
                if(front == ')')
                    if(top == '(')
                    {
                        st.pop();
                        continue;
                    }                
            }
            
            st.emplace(front);
        }
        
        if(st.empty())
            ++answer;
        
        int front = q.front();
        q.pop();
        q.emplace(front);
    }
    
    return answer;
}

 

์ €์ž‘์žํ‘œ์‹œ ๋น„์˜๋ฆฌ ๋ณ€๊ฒฝ๊ธˆ์ง€ (์ƒˆ์ฐฝ์—ด๋ฆผ)

'๐Ÿ–ฅ๏ธ Study Note > Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์  ์ฐ๊ธฐ(C++)  (0) 2023.07.17
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž(C++)  (0) 2023.07.14
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ(C++)  (0) 2023.07.11
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋ฐฐ๋‹ฌ(C++)  (0) 2023.07.10
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋‘ ํ ํ•ฉ ๊ฐ™๊ฒŒ ๋งŒ๋“ค๊ธฐ(C++)  (0) 2023.07.04
'๐Ÿ–ฅ๏ธ Study Note/Coding Test' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ์  ์ฐ๊ธฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - 124 ๋‚˜๋ผ์˜ ์ˆซ์ž(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋งˆ๋ฒ•์˜ ์—˜๋ฆฌ๋ฒ ์ดํ„ฐ(C++)
  • [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๋ฐฐ๋‹ฌ(C++)
Beankong_
Beankong_
์ฃผ๋‹ˆ์–ด ํด๋ผ์ด์–ธํŠธ ํ”„๋กœ๊ทธ๋ž˜๋จธ ๊ณต๋ถ€ ๊ธฐ๋ก
  • Beankong_
    Beankong's Devlog
    Beankong_
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์ „์ฒด ๊ธ€ (141) N
      • โ›… Daily (0)
      • ๐Ÿ–ฅ๏ธ Study Note (135) N
        • Unreal Engine (5) N
        • Coding Test (123)
        • Design Patteren (5)
        • VCS (Git..) (1)
        • Server (1)
      • ๐Ÿงญ Devlog (6) N
        • ์˜ค๋‹ต๋…ธํŠธ (2)
        • UE5 GameLift Server Test Project (1)
        • TIL (3) N
  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.3
Beankong_
[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค]level.2 - ๊ด„ํ˜ธ ํšŒ์ „ํ•˜๊ธฐ(C++)
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”