BRACKETS2 문제의 오답인 이유를 모르겠습니다.

  • udahi
    udahi

    질문하시기 전에

    글을 작성하시기 전에 반드시 아래의 내용을 잘 읽어 주세요.
    다른 사람의 코드를 읽어 오류를 찾아내는 일은 쉽지 않습니다. 좋은 답변을 받기 위해서는 좋은 질문이 필요합니다.
    좋은 질문을 하려 노력하면, 종종 자신 스스로 해답을 발견하기도 합니다.

    질문에 포함되지 않아도 될 내용

    • "제 컴퓨터에서는 답이 잘 나오는데..."
    • "예제는 잘 나오는데..."
    • "넣어 본 것들은 잘 나오는데..."

    질문에 포함되어야 할 내용

    • 제목은 질문의 내용을 잘 요약해야 합니다.
    • 해결하고자 하는 문제가 무엇인지 잘 적어야 합니다.
      • 알고스팟의 문제라면, 아래의 문법 도움말을 참고하여 문제 링크를 걸어 주세요.
      • 외부의 문제라면, 문제 요약이나 URL을 제공해 주세요.
    • 문제를 어떻게 해결하려 하셨는지/해결하고 계신지 설명해 주십시오.
      • 코드만 복사해 붙여넣는 것은 설명이 아닙니다.
      • 구체적으로 알고리즘을 기술할 수 있다면 도움이 됩니다.
      • 예시를 들어 설명하는 것도 좋습니다.
    • 자신의 답안을 검증하기 위해 어떤 노력을 했는지 적어 주세요.
      • 직접 데이터를 만들어서 넣어 봤다면, 어떤 데이터를 넣었는지 적어 주세요.

    참고사항: 문법 관련

    알고스팟은 Markdown이라는 마크업 언어의 사투리를 사용하고 있습니다.
    글을 작성하시기 전에 반드시 아래 도움말을 참조하여 주세요.
    특히, 코드에 대해서는 알맞은 코드 블럭 문법을 사용하여 구문 강조가 되도록 해 주세요.

    코드 블럭 문법 예제

    코드 블럭 문법을 다음과 같이 사용하실 수 있습니다.

    #include "stdafx.h"
    #include<iostream>
    #include<string>
    using namespace std;
    
    bool isPair(string str, unsigned int i, string strCompare)
    {
    
        if(i+1 < str.length())
        {
            if( str[i+1] == strCompare[0])
                return true;
        }
    
    
    
        return false;
    
    }
    
    
    bool FindPair(string str)
    {
        string strComapre;
    
    
        for(unsigned int i  = 0;  i < str.length() - 1; )
        {
            if ( str[i] == '{')
            {
                strComapre = '}';
            }
    
            if ( str[i] == '(')
            {
                strComapre = ')';
            }
    
            if ( str[i] == '[')
            {
                strComapre = ']';
            }
    
            if(isPair(str, i, strComapre))
            {
                //트루면 그 두개를 다 없앤다.
                str.erase(i,2);
                i = 0;
            }
            else
            {
                if (str.length() < 1)
                {
                    return true;
                }
                ++i;
            }
    
        }
        if(str.length() > 0)
        {
            return false;
        }
    
        return true;
    }
    
    
    int main() {//123,125, 40, 41, 91, 93
    
    
    
        int cases;
        cin >> cases;
        while(cases--) {
            string szStr;
            cin >> szStr;
    
            //검색하자
            bool i = FindPair(szStr);
    
            if (i == true)
            {
                cout << "YES"<<endl;
            }
            else
            {
                cout << "NO"<<endl;
            }    
        }
    }
    

    문단을 구분하기 위해 앞과 뒤에 빈 줄 하나씩을 반드시 추가하셔야 합니다.


    마지막으로 자주_하는_실수_모음 페이지를 읽으시면서 혹시 해당되는 사항이 있진 않은지 생각해 보세요.

    위 내용이 지켜지지 않은 질문은 답변이 오래 걸릴 수 있습니다.

    아래 '편집하기' 버튼을 눌러 글을 쓰실 수 있습니다.


    8년 전
1개의 댓글이 있습니다.
  • seico75
    seico75

    질문이 뭔지 모르겠습니다.
    "코드만 복사해 붙여넣는 것은 설명이 아닙니다."
    쓰신(?) 글에 적혀있네요..


    8년 전 link
  • 정회원 권한이 있어야 커멘트를 다실 수 있습니다. 정회원이 되시려면 온라인 저지에서 5문제 이상을 푸시고, 가입 후 7일 이상이 지나셔야 합니다. 현재 문제를 푸셨습니다.