테스트 케이스 한 개 통과하지 못하는 문제
solution 코드를 아래와 같이 작성했습니다.
public static int solution(int n, int[][] board, int m, int[] moves) {
int answer = 0;
// stack 만들기
List<Stack<Integer>> stacks = new ArrayList<>();
for (int i = 0; i < n; i++) {
Stack<Integer> tmp = new Stack<>();
for (int j = n - 1; j >= 0; j--) {
if (board[j][i] == 0) break;
tmp.push(board[j][i]);
}
stacks.add(tmp);
}
Stack<Integer> bucket = new Stack<>();
for (int i : moves) {
if (!stacks.get(i-1).isEmpty()){
int newItem = stacks.get(i-1).pop();
if (!bucket.isEmpty() && bucket.peek() == newItem) {
bucket.pop();
answer += 2;
} else bucket.push(newItem);
}
}
return answer;
}
board의 상단 인형에 접근하는 방법으로 저는 Stack의 List를 만들어 사용했고, 강사님은 직접 배열에 접근했다는 것이 차이점인 것 같습니다.
위 코드로 채점을 해보면 4번 test case까지는 통과하지만 마지막 5번 test case를 통과하지 못합니다. (리턴 : 22, 답 : 16)
코드의 효율성 문제를 떠나서 위 코드도 제대로 동작해야 될 것 같은데 마지막 케이스만 통과하지 못하는 이유를 도저히 못 찾겠네요ㅜㅜ
혹시 이유를 아시는 분이 계실까요..?ㅜ
답변 1
0
5번 문항 테스트 케이스를 잘 보시면 N번 째 줄의 인형을 쌓을 때 0 0 0 1 2 3 이런 식으로 쌓이는 경우 뿐 아니라 0 1 0 2 3 같은 경우도 있습니다.
if (board[j][i] == 0) break;
처럼 N번 째 줄에 대한 스택을 그만 쌓도록 하면 리턴값이 22 나올 겁니다.
안녕하세요. 바뀐 채점사이트 관련해서 문의드립니다.
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





