@9967han 첫번째 반례 정말 감사드립니다.
19235번 - 모노미노도미노
@9967han 첫번째 반례 정말 감사드립니다.
6
1 0 0
1 0 2
2 0 0
3 0 2
2 0 1
3 0 3
ans)
1
12
이 반례 혹시 2/8 아닌가요?
5번째 2 0 1 까지 쌓으면
0 1 1 0
0 0 1 0
1 1 1 0
1 0 1 0
이런 형태고
6번째 마지막 3 0 3 을 투입하면
0 1 1 0
0 0 1 0
1 1 1 1
1 0 1 1
이렇게 되어 3번째 층이 무너지고
0 0 0 0
0 0 1 0
0 0 1 0
1 1 1 1
다시 마지막 층이 4개가 되서 무너지고
0 0 0 0
0 0 0 0
0 0 1 0
0 0 1 0
이 최종적으로 되는게 맞지 않나요 제가 뭘 놓치고 있는지 궁금합니다
1번 반례가 해당 문제에서 일어날 수 있는 거의 모든 경우의 수를 다 담고 있는 것 같네요!
덕분에 오류 찾아서 해결했습니다. 정말 감사합니다~
9
1 1 1
2 3 0
3 2 2
3 2 3
3 1 3
2 0 0
1 0 0
2 0 0
3 1 2
이게 전 지금
2
20
이 나오는데 전개가 어떻게 되는지 알려주실 수 있나요? 저는
Blue
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 0 0
Green
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 1 0 0
2 3 0
Blue
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 2 2
Green
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
2 2 0 0
0 1 0 0
3 2 2
Blue
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 3 0 0
0 0 0 3 2 2
Green
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
2 2 3 0
0 1 3 0
3 2 3
Blue
0 0 0 0 0 0
0 0 0 0 0 1
0 0 3 3 0 0
0 0 3 3 2 2
Green
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 1 3 3
3 1 3
Blue
0 0 0 0 0 0
0 0 3 0 0 0
0 0 3 3 3 0
0 0 0 3 3 2
Green
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 3
0 0 0 3
0 1 3 3
2 0 0
Blue
0 0 0 0 2 2
0 0 3 0 0 0
0 0 3 3 3 0
0 0 0 3 3 2
Green
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 3
2 2 0 3
0 1 3 3
1 0 0
Blue
0 0 0 1 2 2
0 0 3 0 0 0
0 0 3 3 3 0
0 0 0 3 3 2
Green
0 0 0 0
0 0 0 0
0 0 0 0
1 0 0 3
2 2 0 3
0 1 3 3
2 0 0
Blue
0 0 2 2 1 2
0 0 0 3 0 0
0 0 0 3 3 3
0 0 0 0 3 3
Green
0 0 0 0
0 0 0 0
2 2 0 0
1 0 0 3
2 2 0 3
0 1 3 3
3 1 2
Blue
0 0 2 2 1 2
0 0 3 3 0 0
0 0 3 3 3 3
0 0 0 0 3 3
Green
0 0 0 0
0 0 0 0
0 0 0 0
2 2 0 0
1 0 3 3
0 1 3 3
로 나오는데 이렇게 되는게 아닌가요???
3 2 3 부분부터 잘못 되신 것 같습니다.
3 2 2 블록과 3 2 3 블록은 다른 블록입니다.
아래와 같이 나오면 됩니다.
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 1 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 0 0 0
0 0 0 0 2 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
2 2 0 0
0 1 0 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 0 3 0 0
0 0 0 3 2 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
2 2 3 0
0 1 3 0
0 0 0 0 0 0
0 0 0 0 0 1
0 0 4 3 0 0
0 0 4 3 2 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 1 3 4
0 0 0 0 0 0
0 0 5 0 0 0
0 0 5 4 3 0
0 0 0 4 3 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 5
0 0 0 5
0 1 3 4
0 0 0 0 6 6
0 0 5 0 0 0
0 0 5 4 3 0
0 0 0 4 3 2
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 5
6 6 0 5
0 1 3 4
0 0 0 7 6 6
0 0 5 0 0 0
0 0 5 4 3 0
0 0 0 4 3 2
0 0 0 0
0 0 0 0
0 0 0 0
7 0 0 5
6 6 0 5
0 1 3 4
0 0 8 8 7 6
0 0 0 5 0 0
0 0 0 5 4 3
0 0 0 0 4 3
0 0 0 0
0 0 0 0
8 8 0 0
7 0 0 5
6 6 0 5
0 1 3 4
0 0 8 8 7 6
0 0 9 5 0 0
0 0 9 5 4 3
0 0 0 0 4 3
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
0 0 0 0
6
1 0 0
1 0 2
2 0 0
3 0 2
2 0 1
3 0 3
ans)
1
12
이 테케 마지막이 초록은
0 0 0 0
0 0 0 0
0 0 0 0
0 1 1 0
0 1 1 0
1 0 1 1
파랑은
0 0 0 0 0 0
0 0 0 0 0 1
0 0 1 1 1 1
0 0 1 1 1 0
이렇게 나와서 답이
1
15
아닌가요??
안녕하세요. 문제를 풀다가 문제 지문과 맞지 않는 답이 있는 것 같아 질문 드립니다.
제가 입력했던 예제는 아래와 같습니다.
7
1 0 1
3 0 1
1 0 2
2 2 0
2 2 1
3 0 3
2 3 0
1
16
저는 위 테스트케이스의 답이
2
12
가 나옵니다.
답이 도출되기까지의 과정은 엑셀로 업로드했습니다.(질문.xlsx)
인터넷에서 정답을 맞춘 소스 코드에 위 테스트케이스를 넣고 정답 도출 후의 blue, green 영역을 조회해보니,
blue 영역 :
[[0, 0, 0, 6, 3, 1],
[0, 0, 0, 6, 0, 0],
[0, 0, 0, 5, 5, 4],
[0, 0, 0, 0, 0, 7]]
green 영역 :
[[0, 0, 0, 0],
[0, 0, 0, 0],
[7, 7, 0, 0],
[0, 5, 5, 0],
[4, 4, 0, 0],
[0, 2, 0, 6]]
로 나오는데, blue 영역에서 (x,y)=(1,3) 의 칸이 왜 채워져 있는 것인가요?
문제의 지문에 따르면, "초록색 보드에서 어떤 행이 타일로 가득 차 있다면, 그 행의 타일은 모두 사라진다. 사라진 이후에는 초록색 보드에서 각 블록이 다른 블록을 만나거나 경계를 만나기 전까지 아래로 이동한다. 파란색의 경우는 열이 타일로 가득 차 있으면, 그 열의 타일이 모두 사라지며, 사라진 이후에는 파란색 보드에서 각 블록이 다른 블록을 만나거나 경계를 만나기 전까지 오른쪽으로 이동한다" 라고 되어 있기 때문에,
(x,y) = (1,5) 칸이 채워져 있어야 하는 것 아닌가요?
제 코드에서 따 온 디버깅 과정 프로세스의 (red 영역이 포함된) blue 영역에서 따오자면, 마지막에 t x y 로 2 3 0 이 입력된 후,
1) 블록 이동
[[0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 1, 0, 1, 0],
[0, 0, 0, 0, 0, 0, 1, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 1]]
2) 오른쪽에서 두 번째 열 삭제(ans+=1) 및 블록 이동(각 블록이 다른 블록을 만나거나 경계를 만나기 전까지 아래로 이동. 따라서, 2행의 블록은 경계를 만나기 전까지 맨 오른쪽 열로 이동).
ans = 1
[[0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1],
[0, 0, 0, 0, 0, 0, 0, 1, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 1]]
3) "블록의 이동 때문에, 다시 행이나 열이 타일로 가득차는 경우가 또 발생할 수도 있다. 이 경우에도 1점을 얻고, 그 행이나 열의 모든 타일을 제거하고 다시 나머지 블록을 이동하면 된다" 에 근거하여, 맨 오른쪽 열 삭제(ans+=1) 및 블록 이동(각 블록이 다른 블록을 만나거나 경계를 만나기 전까지 아래로 이동. 따라서, 2행의 블록은 경계를 만나기 전까지 맨 오른쪽 열로 이동)
ans=2
[[0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0],
[0, 0, 0, 0, 0, 0, 0, 0, 1, 1],
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]]
4) 이 때 green 영역은, 연한 색 칸을 처리한 결과 아래와 같은 상태가 된다.
[[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[0, 0, 0, 0],
[1, 1, 0, 0],
[0, 1, 1, 0],
[1, 1, 0, 0],
[0, 1, 0, 1]]
5) 정답은
2
12
라고 나올 것 같은데, 실제 정답은 그렇지 않아 질문 드립니다.
댓글을 작성하려면 로그인해야 합니다.
9967han 3년 전 24
18
1 2 2
1 2 3
2 0 0
1 2 0
1 1 2
1 1 0
2 3 0
3 0 1
3 1 3
2 1 0
1 2 0
2 3 0
2 2 1
1 2 2
3 0 3
1 2 0
2 2 0
3 2 3
ans)
6
10
6
1 1 0
2 1 0
3 1 2
3 0 1
3 0 2
3 0 3
ans)
2
11
6
1 0 0
1 0 2
2 0 0
3 0 2
2 0 1
3 0 3
ans)
1
12
9
1 1 1
2 3 0
3 2 2
3 2 3
3 1 3
2 0 0
1 0 0
2 0 0
3 1 2
ans)
4
12
7
1 0 1
3 0 1
1 0 2
2 2 0
2 2 1
3 0 3
2 3 0
ans)
1
16
10
2 2 1
2 1 1
1 2 3
3 2 3
1 0 0
3 0 3
3 1 3
1 2 3
1 3 3
2 1 2
ans)
1
13