인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

정진우님의 프로필 이미지

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

2-N

2-N 문제 풀이 방식에 대한 질문있습니다.

해결된 질문

작성

·

26

0

안녕하세요.

항상 문제 해설을 보기 전에 먼저 풀어보는데, 푸는데 성공을 해도 강사님의 풀이 방식과 다를 때가 많네요. 풀기만 하면 딱히 상관 없을까요?

이번에 2-N 풀었던 제 코드입니다.
http://boj.kr/bf21d9293889449ab969f00f6aed7cda

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 진우님 ㅎㅎ

코드가 깔끔하고 좋네요 ㅎㅎ

다만 left, right 로 구분하는 것보다 이렇게 하는게 더 깔끔할거 같긴 합니다.

bool isVPS(const string& str)
{
    if (str.size() & 1 || ')' == str[0] || '(' == str[str.size() - 1])
        return false;
    int balance = 0;
    for (char c : str) {
        if (c == '(')
            ++balance;
        else
            --balance;
        if (balance < 0)
            return false;
    }
    return (balance == 0); 
}

 

항상 문제 해설을 보기 전에 먼저 풀어보는데, 푸는데 성공을 해도 강사님의 풀이 방식과 다를 때가 많네요. 풀기만 하면 딱히 상관 없을까요?

-> 제코드와 비교해도 딱히 나무랄데 없는 좋은 코드입니다. 풀이방식과 다른 거는 괜찮습니다.

또한, 풀고 해설코드 보면서 비교하는것도 좋은 습관인 것 같습니다.

 

 

코드 잘 짜셨습니다.

 


 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.