[Programmers] Lv2. 짝지어 μ œκ±°ν•˜κΈ° | C++

2023. 6. 12. 21:42ㆍCoding Test/Programmers

πŸ”—λ¬Έμ œ λ³΄λŸ¬κ°€κΈ°
 

ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€

μ½”λ“œ μ€‘μ‹¬μ˜ 개발자 μ±„μš©. μŠ€νƒ 기반의 ν¬μ§€μ…˜ 맀칭. ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€μ˜ 개발자 λ§žμΆ€ν˜• ν”„λ‘œν•„μ„ λ“±λ‘ν•˜κ³ , λ‚˜μ™€ 기술 ꢁ합이 잘 λ§žλŠ” 기업듀을 맀칭 λ°›μœΌμ„Έμš”.

programmers.co.kr

 

πŸ‘¨‍πŸ’»ν’€μ΄ κ³Όμ •

 

μ²˜μŒμ—λŠ” μ •κ·œμ‹μ„ ν™œμš©ν•΄μ„œ replace()λ₯Ό ν• κΉŒ μƒκ°ν–ˆμ—ˆλŠ”λ° 문제의 μ˜λ„(짝을 λ°œκ²¬ν•˜λ©΄ μ œκ±°ν•˜κ³  μ•ž λ’€ λΆ™μ΄λŠ”)μ™€λŠ” λ§žμ§€ μ•Šμ•˜κ³ , 짝을 κΈ°μ€€μœΌλ‘œ μ•žκ³Ό λ’€ λ¬Έμžμ—΄μ„ ν•©μΉ˜λŠ” κ³Όμ •μ—μ„œ μ˜€λ²„ν—€λ“œκ°€ 많이 λ°œμƒν•˜λ‹ˆ μ–΄λ–»κ²Œ ν•˜λ©΄ μ’‹μ„κΉŒ κ³ λ―Όμ΄μ—ˆμŠ΅λ‹ˆλ‹€.

 

그런데, λ³΅μž‘ν•  것 없이 μŠ€νƒ(Stack)을 ν™œμš©ν•˜λ©΄ 정말 μ‰½κ²Œ ν’€λ¦¬λŠ” λ¬Έμ œμ˜€μŠ΅λ‹ˆλ‹€. μ’€ 더 사고λ₯Ό ν™•μž₯ν•˜μ—¬ μœ μ—°ν•˜κ²Œ ν•  ν•„μš”κ°€ μžˆμ„ 것 κ°™λ„€μš”.

 

βœοΈμ†ŒμŠ€ μ½”λ“œ 및 κ²°κ³Ό

#include <string>
#include <stack>
using namespace std;

int solution(string s)
{
    stack<char> myStack;

    for (const auto alphabet : s) {
        if (myStack.empty()) {
            myStack.push(alphabet);
            continue;
        }

        if (myStack.top() == alphabet) {
            myStack.pop();
            continue;
        }

        myStack.push(alphabet);
    }
   
    return myStack.empty();
}

 

 

728x90
λ°˜μ‘ν˜•