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

이종현님의 프로필 이미지
이종현

작성한 질문수

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

5-O

17406 변수명이 겹쳤을 때 질문

해결된 질문

작성

·

287

0

안녕하세요 강사님

http://boj.kr/5dfc0dabb69045c6980f9ea7c7af0072

해당 코드에서 53번째 줄 Board b와 61번째 줄 int bb가 통과 전에는 둘 다 b로 선언해서 맞왜틀로 시간을 좀 썼는데요.. 코드 제출 전에 제가 디버깅할 때는 답도 잘 출력되고 따로 에러도 안 떠서 아무 문제가 없는줄 알았는데 제출할 때만 틀렸습니다가 뜨는 이유가 무엇일까요?

답변 1

2

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

안녕하세요 종현님 ㅎㅎ

    Board b;
    for(int i=1; i<=n; i++){
        for(int j=1; j<=m; j++){
            cin >> b.a[i][j];
        }
    }
    for(int i=0; i<k; i++){
        per.push_back(i);
        int aa, bb, cc;
        cin >> aa >> bb >> cc;
        v.push_back({aa,bb,cc});
    }
    do {
        Board temp = b;

여기서 board b를 bb로 했다가 틀렸다는 말씀이시죠?

만약, board b를 나중에 어떠한 코드에서도 참조를 안한다면 그렇게 해도 됩니다.

그러나.

    }
    do {
        Board temp = b;

지금 보면 계속해서 temp에다가 할당하고 있죠?

그렇기 때문에 board b는 board를 담은 변수로써 활동할 수 있게끔 서로 "구분"되어야 하고 그렇기 때문에 int형 bb와는 다른 변수명을 써야 합니다.

 

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

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

감사합니다.

강사 큰돌 올림.

이종현님의 프로필 이미지
이종현

작성한 질문수

질문하기