wony6731   4년 전

질문게시판에 나와있는 반례를 모두 해보았으나 제 코드가 왜 틀린지 잘 모르겠습니다...

제가 접근한 방법은 이러합니다.

먼저 연산자와 피연산자를 각각 벡터로 받은 다음, 놓을 수 있는 괄호의 모든 경우에 대해 완전탐색을 진행합니다.

저는 괄호의 표시를 괄호 안에 연산자가 하나만 존재하기 때문에 연산자에게 우선순위를 표시하여 먼저 계산되도록

하였습니다. 그리하여 Calculate 함수 안에 있는 V1, V2는 우선순위가 높은(괄호안에 있는) 연산자를 먼저 계산하여 업데이트하게 됩니다.

1%도 뜨지 않고 바로 틀렸습니다 라고 뜹니다... 어디 놓친 부분이 있는 것 같은데  혹시 어느 부분이 문제인지 반례라도 알 수 있을까요....? ㅜㅜ

boodooboo   4년 전

살짝 봤는데 처음 max_answer = 0 으로 해주게 된다면 음수 값이 답으로 못 나오게 됩니다.

max_answer를 음수 최대값으로 전역 선언 한 후 다시 해보시길 바랍니다.

wony6731   4년 전

살짝 봐주셔서 감사합니다 ㅜㅜ 어이없게 놓치고 있었던 부분이였네요....

boodooboo   4년 전

네 해결되셨나요? 그 외에는 살펴보지 않았는데, 처음 보자마자 그게 눈에 보여서 말씀드렸습니다.

wony6731   4년 전

런타임 에러로 바뀌긴 했는데 ㅋㅋㅋ 그래도 덕분에 진전이 생겼습니다! 정말 감사합니다.

boodooboo   4년 전

#include <climits> 헤더 추가하시고

int max_answer = 0; 를 long long max_answer = INT_MIN; 로 변경해서 한번 제출해보세요

wony6731   4년 전

.......? 저 지금 혼란스러운 부분이 생겨서 다시 질문드려요....

말씀하신대로 max_answer를

long max_answer = (-1) * (pow(2, 31) - 1);

와 같이 입력의 가장 작은 값으로 설정해준다음에 코드를 실행하였을 때 [런타임 에러]가 발생하였습니다.

그래서 저는 코드를 잘못짠줄알았는데 말씀하신대로 코드를 수정하고 제출하니 맞았다고 떴습니다...

제가 수정한 코드와 어떤 차이가 있는걸까요....?

wony6731   4년 전

아.. <math.h> 헤더파일 추가안해서 pow함수를 쓰는데 컴파일 에러가 떴었네용...^^ 힣ㅎ히

boodooboo   4년 전

네 보통 비주얼 스튜디오는 그런걸 알아서 잡아주는데, 실제 채점 환경에서는 잡아주지 않습니다 ㅎㅎ

저도 잔 실수로 며칠 동안 고생한 경험이 많고, 아직도 자주 그러곤 합니다.

자주 실수하시는 부분에 대해 임팩트 있게 경험해 두고 반복하지 않도록 하시면 좀 더 견고해 지실겁니다

화이팅 ㅎㅎ

wony6731   4년 전

감사합니다!! 그런데 정말 죄송한데 나중에 여유생기시면 "1931번-회의실배정"도 여쭤봐도 될까요,,,,,ㅜㅜ

여기입니당....

댓글을 작성하려면 로그인해야 합니다.