hun3555   3년 전

현재 입력에 다음과 같이 적혀 있습니다.

첫째 줄에 테스트 케이스의 수 T가 주어진다. (1 ≤ T ≤ 20,000)

각 테스트 케이스는 5줄로 구성되어 있다.

첫째 줄에는 크리스마스까지 남은 시간 X초가 주어지며, (1 ≤ X ≤ 2,000) 둘째 줄 부터 다섯번째 줄 까지는 한 줄에 하나씩 3개의 공백으로 구분된 수 A, B, C가 주어지며. 이것은 선물을 놓으려는 집이 산타의 집으로 부터 각각 가로, 세로, 높이가 Akm, Bkm, Ckm 차이가 난다는 것을 의미한다. 두 수의 부호가 같을 경우, 두 집은 같은 방향으로 산타의 집으로 부터 차이가 나며, 두 수의 부호가 다를 경우, 두 집은 다른 방향으로 산타의 집으로 부터 차이가 난다.(-100 ≤ A, B, C ≤ 100)

그런데 여기서 A, B, C가 그냥 수 라고만 되어 있고 정수인지 아닌지 적혀 있지 않습니다.

한편, http://blog.kyouko.moe/13 에서 볼 수 있는 문제 제작자 ho94949 님의 예시 코드에서 입력을 받는 부분을 보면,

int a, b, c; scanf("%d%d%d",&a,&b,&c);

라고 되어 있습니다. 즉, 입력을 정수로만 받고 있죠.

때문에 입력 부분에 A, B, C가 정수라는 조건을 추가해야 합니다. 더해서, 거리라는 개념은 보통 절댓값이다 보니 음수인 경우를 생각하기 힘듭니다. 따라서 절댓값이 아니라는 서술을 추가하는 쪽이 나을 것 같습니다.

그리고 오타가 두 군데 있는데, 수가 3개가 들어오면 구분하는 공백은 두 개입니다. 그러나 입력에 세 개라고 적혀 있습니다. 그리고 쉼표 대신에 마침표가 찍힌 곳이 하나 있습니다.

마지막으로, 입력의 '두 수의 부호가 같을 경우, 두 집은 같은 방향으로 산타의 집으로 부터 차이가 나며, 두 수의 부호가 다를 경우, 두 집은 다른 방향으로 산타의 집으로 부터 차이가 난다.' 문장에서 두 수의 의미가 명확하지 않습니다. 이를 '만일 두 개의 집이 한 방향(가로, 세로, 높이 중 하나)으로 산타의 집으로부터 떨어진 거리의 부호가 같을 경우, 두 집이 산타의 집을 기준으로 같은 방향에 있다는 것을 의미하며, 부호가 다를 경우 산타의 집을 기준으로 다른 방향에 있다는 것을 의미한다.'로 바꾸는 것이 더 명확한 이해를 도울 수 있다고 생각합니다.

종합하여, 입력 부분을 다음과 같이 바꿔야 한다고 생각합니다.

첫째 줄에 테스트 케이스의 수 T가 주어진다. (1 ≤ T ≤ 20,000)

각 테스트 케이스는 5줄로 구성되어 있다.

테스트 케이스의 첫 번째 줄에는 크리스마스까지 남은 시간 X초가 주어진다. (1 ≤ X ≤ 2,000)

두 번째 줄부터 다섯 번째 줄까지는 공백으로 구분된 세 정수 A, B, C가 주어지며, 이것은 선물을 놓으려는 집이 산타의 집으로부터 각각 가로, 세로, 높이가 Akm, Bkm, Ckm만큼 차이가 난다는 것을 의미한다. 이 거리는 절댓값을 의미하지 않으며, 산타의 집을 기준으로 한 방향으로의 거리는 양수, 다른 방향으로의 거리는 음수이다. (-100 ≤ A, B, C ≤ 100)

만일 두 집이 한 방향(가로, 세로, 높이 중 하나)으로 산타의 집으로부터 떨어진 거리의 부호가 같을 경우, 두 집이 산타의 집을 기준으로 같은 방향에 있다는 것을 의미하며, 부호가 다를 경우 산타의 집을 기준으로 다른 방향에 있다는 것을 의미한다.

jh05013   3년 전

그냥 각 집의 3차원 공간 상의 좌표가 주어지고, 산타의 집은 원점이라고 하면 될 것 같습니다.

jh05013   3년 전

첫째 줄에 테스트 케이스의 수 T가 주어진다. (1 ≤ T ≤ 20,000)

각 테스트 케이스는 5줄로 구성되어 있다.

테스트 케이스의 첫 번째 줄에는 크리스마스까지 남은 시간 X초가 주어진다. (1 ≤ X ≤ 2,000)

두 번째 줄부터 다섯 번째 줄까지는 공백으로 구분된 세 정수 A, B, C가 주어지며, 이것은 산타의 집을 원점으로 놓았을 때 선물을 놓으려는 집의 3차원 공간 상의 좌표를 의미한다. (-100 ≤ A, B, C ≤ 100)

hun3555   3년 전

그쪽이 훨씬 좋을 것 같네요. 좋은 의견 감사합니다.

doju   3년 전

작성자님이 수학적인 표현을 최대한 피하려고 저런 식으로 쓴 게 아닐까 합니다. 산타가 선물을 배달하러 다니는 훈훈한 문제에 산타의 집을 원점으로 하고 한 단위길이가 1㎞인 직교좌표계에서의 x, y, z 좌표라는 표현이 등장하면 좀 딱딱해 보일 수도 있지 않을까요 ;)

일단 기존의 느낌을 유지하는 방향에서 수정해 봤습니다.


첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 20,000)가 주어진다. 각 테스트 케이스는 다음과 같이 5개의 줄로 구성되어 있다.

  • 첫째 줄에는 크리스마스까지 남은 시간을 나타내는 정수 X(1 ≤ X ≤ 2,000)가 주어진다.
  • 둘째 줄부터 4개의 줄에 걸쳐 각 집의 위치를 나타내는 세 개의 정수 A, B, C(-100 ≤ A, B, C ≤ 100)가 공백으로 구분되어 주어진다. 이는 선물을 놓으려는 집이 산타의 집으로부터 가로, 세로, 높이 방향으로 각각 A㎞, B㎞, C㎞ 떨어진 위치에 있음을 뜻하며, 주어지는 수가 음수인 경우는 양수일 때와 반대 방향(예: 양수일 때가 오른쪽이라면 음수일 때는 왼쪽)으로 그 수의 절댓값만큼 떨어져 있음을 의미한다.

startlink   3년 전

ho94949   3년 전

문제를 쉬워보이게 만드려 노력했기 때문에 비문이 많이 나온것 같네요... doju님 글이 제일적당하지 않을까 싶어요

702fbtngus   3년 전

그리고 오타가 두 군데 있는데, 수가 3개가 들어오면 구분하는 공백은 두 개입니다. 그러나 입력에 세 개라고 적혀 있습니다. 그리고 쉼표 대신에 마침표가 찍힌 곳이 하나 있습니다.

라는 부분에서 공백 문제는 

' 한 줄에 하나씩 3개의 (공백으로 구분된) 수 A, B, C가 주어지며 '

라고 이해하시면 될 거 같아요! :D

startlink   3년 전

수정했습니다.

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