tjdwo5313   4년 전

결론

  1. '직사각형을 그리지 않는 경우는 없다' 조건 추가
  2. 'N과 M이 1 이상이다' 조건 추가
  3. 줄게 => 줄에 오타 수정
  4. 입력이 => 입력으로 오타 수정

부연 설명

확인 결과 현재 마지막 테스트 케이스에서 모든 원소가 음수인 행렬이 입력으로 들어옵니다.

물론 모든 원소가 음의 값을 갖는 행렬이 입력으로 들어올 수 있다는 것은 당연하지만

'직사각형은 최소 1개 이상의 원소를 포함한다' 또는

'직사각형을 그리지 않는 경우는 없다'  등의 조건이 없었기 때문에

저는 어떠한 원소도 포함하지 않는 직사각형을 그릴 수도 있다고 가정하고 문제를 풀다가 100%에서 틀리게 되었습니다.

물론 직사각형을 그린다는 것이 최소 1개 이상의 원소를 포함하는 직사각형을 그린다고 해석하는 것이 자연스러울 수 있지만 그래도 혹시 모를 혼란을 방지하기 위하여 위와 같은 조건을 추가로 명시해주시면 감사하겠습니다.

또한 N과 M이 1 이상이라는 조건도 추가해주시길 부탁드립니다.

그리고 입력란에 'N개의 줄게 M개씩 수가 입력이 들어온다' 라고 되어있는데 'N개의 줄에 M개씩 수가 입력으로 들어온다'로 수정해주시길 부탁드립니다.

jh05013   4년 전

문제 설명이 처참해서 이 글을 바탕으로 다시 써 보았습니다. 정수의 범위가 안 적혀 있어서 빈 칸으로 두었습니다.

문제

동주는 항상 혼자 노느라 심심하다. 하지만 혼자 놀기의 고수가 된 동주는 매일매일 게임을 개발하여 혼자놀기의 진수를 우리에게 보여준다. 어느 날 동주는 새로운 게임을 개발하였다. 바로 점수 따먹기라는 게임인데 그다지 재밌어 보이지는 않는다.

동주가 개발한 게임은 이렇다. 일단 N*M 행렬을 그린 다음, 각 칸에 ___ 이상 ___ 이하의 정수를 하나씩 쓴다. 그런 다음 그 행렬의 부분행렬을 그려 그 안에 적힌 정수의 합을 구하는 게임이다.

동주가 혼자 재밌게 놀던 중 지나가는 당신을 보고 당신을 붙잡고 게임을 하자고 한다. 귀찮은 당신은 정수의 합이 최대가 되는 부분행렬을 구하여 빨리 동주에게서 벗어나고 싶다.

입력

첫째 줄에 N (1 < N < 200), M (1 < M < 200)이 주어진다. 그 다음 N개의 줄에 M개씩 행렬의 원소가 주어진다.

출력

첫째 줄에 최대의 합을 출력하라.


startlink   4년 전

수정했습니다.

jh05013   4년 전

제가 실수로 범위를 1 < N이랑 1 < M이라고 썼는데, N이나 M이 1인 테스트케이스가 존재한다면 등호를 넣어 주세요. 감사합니다.

@startlink

startlink   4년 전

실수인지 모르고 assert도 <로 했습니다. assert를 통과해서 그대로 수정했습니다.

댓글을 작성하려면 로그인해야 합니다.