14499번 - 주사위 굴리기
문제는 해결 했습니다만
너무 궁금한 부분이 있어서요
제 코드 중 일부입니다.
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 코드 올려보겠습니다.
아 질문올리고 다시보니 바로 알겠네요
첫번째 if문에서 board값이 변경되면
밑 조건문이 실행돼서 틀린거였습니다!
하하..
댓글을 작성하려면 로그인해야 합니다.
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 코드 올려보겠습니다.