코드 확인 좀 부탁드립니다 ㅠㅠ
312
27 câu hỏi đã được viết
import java.util.*;
public class Main {
public int solution(int[][] arr, int[] arr2){
Stack<Integer> stack = new Stack<>();
int cnt = 0;
stack.push(0);
for(int x : arr2){ // 1 5 3 5 1 2 1 4
for(int i = 0; i < arr2.length; i++){ // 01 11 21 31 41
if(arr[i][x] > 0){
int a = arr[i][x];
if(a == stack.peek()){
stack.pop();
cnt++;
}
else
stack.push(a);
arr[i][x] = 0;
break;
}
}
}
return cnt * 2;
}
public static void main(String[] args) {
Main t = new Main();
Scanner kb = new Scanner(System.in);
int n = kb.nextInt();
int[][] arr = new int[n][n];
for(int i =0; i < n; i++){
for(int j = 0; j < n; j++) {
arr[i][j] = kb.nextInt();
}
}
int m = kb.nextInt();
int[] arr2 = new int[m];
for(int i = 0; i < m; m++){
arr2[i] = kb.nextInt() - 1;
}
System.out.println(t.solution(arr, arr2));
}
}
이렇게 코드를 작성해보았는데 런타임 에러가 뜨네요 ㅠㅠ 코드에
어느 부분이 문제가 있는지 잚 모르겠어서 질문 남깁니다!
*/
Câu trả lời 1
0
제가 코드를 실행시켜보지는 못해서 부족하지만 조금이라도 도움이 되셨으면 좋겠습니다.
1. 문제는 board판에서 숫자를 찾아 바구니에 넣어야 하기 때문에 두 번째 반복문의 범위 = board의 길이여야 합니다. 따라서 arr2.length -> arr.length로 변경하셔야 합니다.
2. moves 배열에 담겨져 있는 인자들은 1부터 시작하고 최대 board판의 길이까지 담겨있습니다. 그러나 배열은 0부터 시작해서 길이 - 1까지 담겨져 있습니다. 따라서 moves의 값 x 그 자체가 아닌 x - 1을 하여야 배열에 인덱스에 맞게 들어갑니다.
처음에 0을 넣는 것, 카운트를 1씩 더하고 추후에 *2를 하는 거에 대해서는 아마 상관없을 것 같습니다만 혹시나 위의 2가지를 해결하고 난 후에도 문제가 생기신다면 강사님의 코드와 동일하게 수정해보시는 건 어떠신 지 말씀드려봅니다.
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
0
59
2
갑자기 채점 사이트가 바뀌었어요
0
42
1
문제 리스트 페이지
0
38
1
채점 사이트 관련 질문드립니다
0
34
1
봉우리 문제 질문입니다
0
94
2
씨름 선수 문제에서 각 선수의 몸무게나 키가 같을 수도 있다면?
0
70
0
이 코드랑 영상 코드중에 뭐가 더 좋은 코드인가요?
0
74
0
가중치 방향 그래프에서 가중치가 0인 간선을 표현하는 방법
0
74
1
좌표 정렬 문제 이 코드가 왜 틀린지 모르겠습니다 ㅠㅠ
0
88
2
6-7 강의에서
0
51
1
6-6. 장난꾸러기 질문 있습니다.
0
49
1
강의 수강후 코딩테스트
0
119
1
answer 변수 사용 여부
0
49
1
2중 for문
1
89
2
2-11. 임시반장정하기 (Runtime Error)
0
65
1
혹시 LinkedList 같은 자료 구조들은 따로 배우지 않나요?
0
74
1
이런 풀이는 어떨까요
0
50
1
자바 스트림 방식의 효율성 질문 드립니다.
0
61
1
알고리즘 자료 구조들..
0
66
1
StringBuilder vs BufferdWriter
0
51
1
원더랜드(프림)
0
54
1
이런 코드는 어떤가요?
0
65
1
bfs 풀이
0
61
1
병합정렬
0
58
1

