해결된 질문
작성
·
140
0
자바로 질문해도 괜찮을까요? 만약에 된다면
저는 자바로 코테를 준비해서 자바로 풀었습니다.
46퍼에서 계속 틀렸다고 나오는데 강의랑 같은 방법으로 답안을 적었다고 생각합니다.
제가 무엇을 잘못했는지 궁금합니다.
import java.util.*;
import java.io.*;
public class P12869 {
static int n, ret = Integer.MAX_VALUE;
static int[][][] scv = new int[61][61][61];
static int[] input = new int[3];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
for(int i=0; i<n; i++) {
input[i] = Integer.parseInt(st.nextToken());
}
int[][] dire = new int[][]{{-9,-3,-1},{-9,-1,-3},
{-3,-9,-1},{-3,-1,-9},
{-1,-3,-9},{-1,-9,-2}};
Queue<int[]> q = new LinkedList<>();
q.add(input);
scv[input[0]][input[1]][input[2]] = 1;
while(!q.isEmpty()) {
int[] cur = q.poll();
if(cur[0]==0&&cur[1]==0&&cur[2]==0)
break;
for(int i=0; i<6; i++) {
int na = (cur[0] + dire[i][0])<0? 0 : cur[0] + dire[i][0];
int nb = (cur[1] + dire[i][1])<0? 0 : cur[1] + dire[i][1];
int nc = (cur[2] + dire[i][2])<0? 0 : cur[2] + dire[i][2];
if(scv[na][nb][nc] != 0)
continue;
scv[na][nb][nc] = scv[cur[0]][cur[1]][cur[2]] + 1;
q.add(new int[]{na, nb, nc});
}
}
System.out.println(scv[0][0][0]-1);
}
}
답변 1
1
안녕하세요 ㅎㅎ
먼저 저는 C++이외의 언어로는 답변드리지 않습니다만...
그래도 예전에 자바 했던 경험으로 좀 봐드리자면요 ㅎㅎ
{-1,-3,-9},{-1,-9,-3}};
이케 수정되어야 합니다.
나머지 부분은 다 잘 짜신 것 같습니다.
감사합니다.
다른 언어는 답변안해주시는 몰랐습니다 다음부터 조심하겠습니다.
그럼에도 불구하고 빠르게 답변주시고 감사합니다 덕분에 해결했습니다
정말 감사합니다