jihongmin99   1년 전

문제는 해결 했습니다만

너무 궁금한 부분이 있어서요 

제 코드 중 일부입니다.

void paint(int a, int b)
{
if (board[a][b] == 0)board[a][b] = dice[5];
else if(board[a][b]>0)  
{
dice[5] = board[a][b];
board[a][b] = 0;
}
cout << dice[0] << '\n';
}

1. 지도에 0 이 적혀 있으면 주사위 맨 밑의 수를 지도에 복사하고

2. 0이 아니면 지도의 수를 주사위 맨 밑에 복사한 후 지도에 0을 넣는 것입니다.

처음에 문제 헤맬 때 , if  - else if 가 아닌 if - if 문으로 처리했었는데

구글에 찾아본 바로는 효율성문제로 if - else if 를 사용한다고 하더군요 

if if 를 사용하면 모든 if를 다 돌아야하니까 효율성이 떨어진다고 전혀 다른 조건문들이 필요할 때에 사용한다고 합니다.

물론 앞으론 상황 봐가면서 if if / if else if 사용할 테지만 ㅎㅎ... 너무 궁금해서 여쭤봅니다.

가만 생각해보면 이 문제는 그리 복잡하지 않고 저 paint함수가 처리될 때에 1. 지도가 0일때 / 2. 지도가 0보다 클 때

두 조건만 확인하면 되는데 제출만 하면 시작하고 바로 틀렸다고 뜹니다.

혹시 이유를 알고 계시면 알려주시면 정말 감사드리겠습니다!!

>>>밑은 혹시 몰라서 틀린 if if 코드 올려보겠습니다.

 

jihongmin99   1년 전

아 질문올리고 다시보니 바로 알겠네요 

첫번째 if문에서 board값이 변경되면

밑 조건문이 실행돼서 틀린거였습니다!

하하..

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