-
Notifications
You must be signed in to change notification settings - Fork 36
Open
Description
문제5D-레이저 타워 건설하기
1 ) 선택한 포지션(r,c)에 대해서 이전문제(5C)와 비슷한 메커니즘을 설명하나 실제로 조금 다름 애매모호함.
2 ) setter 함수의 치명적인 누락. GameMap.setBuildingsAt(int r, int c, int value)
오류 상세
발생한 오류에 대해 상세히 알려주세요
1. 선택한 포지션(r,c)에 대해서 이전문제(5C)와 비슷한 메커니즘을 설명하나 실제로 조금 다름 애매모호함.
오늘도 열심히 리그 오브 디펜스를 플레이하던 예인이는 최고 단계의 방어 시설인 레이저 타워를 사용할 수 있는 레벨이 되었다. 레이저 타워는 지도 상의 정사각형 칸 중 한 곳에 배치할 수 있으며, 배치 된 위치에서 가로, 세로, 양 대각선 방향의 시설들을 안전하게 보호할 수 있다.
이 설명은 문제 5C에서도 동일하게 나오지만 5D문제에서는 테스트케이스에 맞게 결과를 내기위해서는 자기자신(선택받은 r,c)도 포함해야함. 바로 이전문제 5C에서는 자기자신(선택받은 r,c)을 포함하지 않으나 5D에서는 최종적으로 자기자신(선택받은 r,c)를 포함해야만 이 문제의 테스트케이스를 통과 할 수 있음.
이 문제를 새로 푸는 사람이나 5C를 풀었던 사람은 자기자신(선택받은 r,c)의 포함문제에 대해 혼동이 올 가능성이 큼.
따라서 이 문제의 설명을 바꿨으면 합니다.
2. setter 함수의 치명적인 누락. GameMap.setBuildingsAt(int r, int c, int value)
라인 83 to 99
/**
* (r, c)칸에 존재하는 건물 수를 수정하는 메소드
*
* @param r
* @param c
* @param value 존재하는 건물 수
*/
public void setBuildingsAt(int r, int c, int value) {
if (this.isInside(r, c) == false) {
return;
}
int origin = getBuildingsAt(r, c); // 수정 전 건물 수
int delta = value - origin; // 수정 전/후 건물수의 차
}
setter로서 작동을 전혀 하지않음. 허나 *int origin = getBuildingsAt(r, c); *을 하고있음.
수정 후.
/**
* (r, c)칸에 존재하는 건물 수를 수정하는 메소드
*
* @param r
* @param c
* @param value 존재하는 건물 수
*/
public void setBuildingsAt(int r, int c, int value) {
if (this.isInside(r, c) == false) {
return;
}
this.buildings[r][c] = value;
}
Metadata
Metadata
Assignees
Labels
No labels