728x90
반응형
힌트
더보기
- right = [1,0] , left[-1,0], up = [0,1], down[0,-1]
- 플레이어의 위치가 board의 범위에 초과하면 더이상 계산하지 않는다
-board의 범위는 각각 /2를 해주면 된다(board의 범위는 홀수이다)
예시) board[7,5] 는 x축으로 -3~+3, y축으로 -2~+2
정답
더보기
public static int[] Solution63(string[] keyInput, int[] board)
{
var boardRange = board.Select(x=> x/2);
int[] playerPos2D = new int[2];
foreach(var key in keyInput){
int[] keyValue = MovePosition(key);
playerPos2D[0] += keyValue[0];
playerPos2D[1] += keyValue[1];
if(playerPos2D[0]> boardRange.First()){
playerPos2D[0]= boardRange.First();
}else if(playerPos2D[0]< -boardRange.First()){
playerPos2D[0] = -boardRange.First();
}
if(playerPos2D[1]> boardRange.Last()){
playerPos2D[1]= boardRange.Last();
}else if(playerPos2D[1]< -boardRange.Last()){
playerPos2D[1] = -boardRange.Last();
}
}
return playerPos2D;
}
static int[] MovePosition(string keyStr){
switch(keyStr){
case "left":
return new int[]{-1,0};
case "right":
return new int[]{1,0};
case "up":
return new int[]{0,1};
case "down":
return new int[]{0,-1};
}
return new int[]{0,0};
}
해석
더보기
var boardRange = board.Select(x=> x/2);
board의 범위를 수정해서 담은 Ienumerable<int>
int[] keyValue = MovePosition(key);
foreach문으로 keyInput의 개수만큼 MovePosition(key)를 통해 int[] 배열을 담는다
switch(keyStr){
case "left":
return new int[]{-1,0};
case "right":
return new int[]{1,0};
case "up":
return new int[]{0,1};
case "down":
return new int[]{0,-1};
}
return new int[]{0,0};
key 값에 따른 int[] 배열을 리턴해준다
playerPos2D[0] += keyValue[0];
playerPos2D[1] += keyValue[1];
할당받은 배열을 플레이어의 위치에 더해준다
if(playerPos2D[0]> boardRange.First()){
playerPos2D[0]= boardRange.First();
}else if(playerPos2D[0]< -boardRange.First()){
playerPos2D[0] = -boardRange.First();
}
플레이어의 X축의 위치가 board를 초과하면 수정해준다
if(playerPos2D[1]> boardRange.Last()){
playerPos2D[1]= boardRange.Last();
}else if(playerPos2D[1]< -boardRange.Last()){
playerPos2D[1] = -boardRange.Last();
}
플레이어의 Y축 위치가 board를 초과하면 수정해준다
728x90
반응형
'C#' 카테고리의 다른 글
[프로그래머스 힌트/답/해석] 등수 매기기 (0) | 2024.01.30 |
---|---|
[프로그래머스 힌트/답/해석] 로그인 성공? (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 컨트롤 제트 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] 외계어 사전 (0) | 2024.01.30 |
[프로그래머스 힌트/답/해석] OX퀴즈 (1) | 2024.01.30 |