gugudan   4년 전

r과 c의 경우 실제 좌표가 아니라 여기서 1을 더해야합니다.

가령 예제 1번을 보면

1 1 1
1 0 1
1 1 1

위의 경우 가로 세로 3칸인데 r,c는 

1 1

입니다. 1,1은 벽이기 때문에 사실 로봇 청소기를 배치할 수 없지만 직관적으로 좌표 2,2에 놓아야한다는걸 알 수 있습니다.

하지만 조건으로 명확히 명시해주는게 좋을거 같아서 건의 드립니다.

예를들자면 r과 c는 "외곽벽을 포함하지 않는 좌표"라던가 "외곽 벽으로 부터 떨어진 좌표"라는 단서를 붙이는게 혼동을 덜할거 같습니다.

저의 경우 예제 1번은 직관으로 생각만 하고 예제 2번만 되게 풀었는데 한참 고생하다가 알았었습니다.

지문에 오해의 여지가 없게 고치는게 어떨까 건의해봅니다.

jh05013   4년 전

"r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다."라고 명확하게 적혀 있습니다.

gugudan   4년 전

그게 외곽벽을 포함하는건지 안하는건지는 확실하게 적혀있지 않습니다.

jh05013   4년 전

"각각의 칸은 벽 또는 빈 칸이다."가 있습니다. 외곽 벽도 벽이므로 칸입니다. 따라서 외곽은 로봇 청소기에게서 북쪽으로부터 떨어진 칸입니다. 그러므로 "북쪽으로부터 떨어진 칸의 개수"라고 하면 외곽도 세야 합니다.

gugudan   4년 전

그러나 실제 문제에서는 외곽벽을 안세야하니까 그런거죠 1번 문제에서는 (1,1)이 아니라 (2,2)로 계산해야 풀립니다.

jh05013   4년 전

예제 1에 있는 그 칸에서 북쪽으로 떨어진 칸은 한 개입니다. 외곽 벽이죠.

3587jjh   4년 전

맨 왼쪽 위를 (1,1)말고 (0,0)으로 생각해보세요 그러면 r,c가 곧 좌표가 됩니다.. 이게 그렇게 혼동될만한 여지가 있는지 모르겠네요

jh05013   4년 전

이제 무슨 의미에서 하신 말씀인지 추측이 갑니다. 혹시 외곽이 격자 바깥이라고 생각하셨나요?

gugudan   4년 전

1은 벽입니다. 근데 외곽도 1로 되있고 내부 벽도 1로 되있습니다. 그래서 저는 생각할 때 첫 시작점을 (1,1)로 계산해서 했는데 계속 안풀려서 보니까 두가지중 하나로 생각해야하더라구요

  1. 시작점을 0,0으로 잡거나
  2. 아니면 외곽벽을 세지 않거나

물론 햇갈리지 않고 푸시는분 계시지만 백준 문제들 중에서 시작점을 0이 아닌 1로 계산하는 문제도 아주 많습니다. 심지어 특정 문제에서는 원점이 (0,0)이다라고 알려주는 문제들도 많습니다.

다른 분들 풀이를 몇개 보니까 아예 외곽벽을 제외하고 문제를 푸시는 분들도 계시더군요.

하지만 둘다 결과적으로 논란의 여지는 있다고 생각합니다.

그래서 명확해지게 조건 하나만 추가해주면하는게 제 바램입니다.

  1. 좌측상단 끝점을 (0,0)이라고 명시하던가
  2. 외곽벽은 계산에서 제외한다.

둘중 하나가 추가됬으면 하는 바램입니다. 이상입니다.

jh05013   4년 전

외곽이 격자 바깥이라고 생각하셨나요?

djm03178   4년 전

중요한 것은 이 문제에서는 (r,c)의 의미를 분명하게 정의하고 있다는 점입니다.

"지도의 각 칸은 (r, c)로 나타낼 수 있고, r은 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로 부터 떨어진 칸의 개수이다."

만일 두 칸이 서로 붙어있다면 그 두 칸 사이에는 한 칸이 떨어져있다고 말할까요? 일상적인 언어로 생각해봤을 때 그렇지 않습니다. 두 칸 사이에 한 칸이 더 있어야 한 칸 떨어졌다고 하죠. 즉, 질문자님이 말씀하신 외곽의 벽이 있는 '좌측상단 끝점'이 북쪽으로부터 1칸 떨어진 것이 아니라 0칸 떨어진 것이고, 서쪽으로부터도 0칸 떨어진 것이기 때문에 (0,0)으로 표현하는 것이 맞습니다.

여기에서 말하는 (r,c)는 어떤 한 점을 나타내는 '좌표'가 아니라 면적을 가지는 '칸'인데 둘을 헷갈리신 게 아닌가 생각합니다.

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