if-else를 활용한 코드
257
김김
작성한 질문수 22
0
import java.util.*;
import java.io.*;
public class P03_잃어버린강아지 {
static int[] dx = {-1, 0, 1, 0};
static int[] dy = {0, 1, 0, -1};
public static int solution(int[][] board){
int px = 0;
int py = 0;
int ax = 0;
int ay = 0;
int pd = 0;
int ad = 0;
for (int i=0; i<board.length; i++) {
for (int j=0; j<board.length; j++) {
if (board[i][j]==2) {
px = i;
py = j;
} else if (board[i][j]==3) {
ax = i;
ay = j;
}
}
}
int answer = 0;
for (int i=0; i<10000; i++) {
int npx = px + dx[pd%4];
int npy = py + dy[pd%4];
if (!(0<=npx && npx<10 && 0<=npy && npy<10) || board[npx][npy]==1) {
pd++;
} else {
px = npx;
py = npy;
}
int nax = ax + dx[ad%4];
int nay = ay + dy[ad%4];
if (!(0<=nax && nax<10 && 0<=nay && nay<10) || board[nax][nay]==1) {
ad++;
} else {
ax = nax;
ay = nay;
}
if (px==ax && py==ay) {
answer = i+1;
break;
}
}
return answer;
}
public static void main(String[] args){
int[][] arr1 = {{0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 2, 0, 0},
{1, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 3, 0, 0, 0, 1},
{0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{0, 1, 0, 1, 0, 0, 0, 0, 0, 0}};
System.out.println(solution(arr1));
int[][] arr2 = {{1, 0, 0, 0, 1, 0, 0, 0, 0, 0},
{0, 0, 0, 0, 0, 0, 1, 0, 0, 0},
{0, 0, 1, 1, 0, 0, 0, 1, 0, 0},
{0, 0, 0, 0, 0, 0, 0, 0, 0, 0},
{0, 0, 0, 1, 0, 1, 0, 0, 0, 0},
{1, 0, 0, 0, 0, 0, 1, 0, 1, 0},
{0, 0, 0, 1, 0, 0, 0, 0, 0, 0},
{0, 0, 1, 0, 0, 0, 0, 0, 2, 1},
{0, 0, 0, 1, 0, 1, 0, 0, 0, 1},
{0, 1, 0, 1, 0, 0, 0, 0, 0, 3}};
System.out.println(solution(arr2));
}
}
어차피 1분동안은 이동 혹은 회전 둘 중 하나만 가능한 것 같아 if-else로 풀고
따로 boolean flag는 두지 않았는데 이렇게 풀어도 문제 없는거 맞나요 ?
혹시 flag 변수를 두었을 때 얻는 이점이 따로 있는지 궁금합니다.
답변 1
비밀번호
0
67
1
과일 가져가기 이러한 경우에는 반례가 생기지 않나요?
0
163
2
cpu 스케줄링
0
107
2
외부 문제 질문
0
122
2
가장 많이 사용된 회의실
0
118
2
심사위원 문제 시간복잡도 질문
0
127
1
현관문 출입순서
0
98
1
미로의 최단거리 통로
0
74
1
집으로 이동 문제 코드
0
125
1
채점 사이트 개설
0
161
2
송아지를 잡자
1
110
1
다익스트라 + 환승횟수
0
135
2
문제풀이 해설 질문입니다.
0
124
2
"이동 횟수" 문제가 변형된다면?
0
156
2
예제 3번의 정답이 이해가 되지 않아요 선생님 ㅜㅜ
0
249
1
"비밀번호" 문제 확인 부탁드립니다!
0
171
1
최대 길이 연속수열 질문
0
193
1
잃어버린 강아지 문제 count 관련 질문있습니다
0
204
1
바둑대회 질문입니당
0
222
1
5. "최대 길이 바이토닉 수열" 에서 설명해주신 방법과 제가 직접 구현한 방법이 달라, 확인 한번 부탁드립니다
0
311
1
알파코드 풀이질문입니다
0
218
1
7번 비밀 번호 문제에 시간복잡도가 궁금합니다!
0
164
1
혹시 이렇게 작성해도 괜찮나요?
0
287
2
문제풀이 확인 부탁드립니다.
0
246
1





