sukwoo0711   7년 전

일단 사과는 여러개 먹을 수 있는게 맞습니다. (과거 질문에 한개만 먹을수있다고 하길래 그거생각해서 짰다가.. 시간을 많이먹었네요 ㅠㅠ)

(여러 개 를 먹을 수 있지, 한 위치에 있는 사과를 여러번 먹을수는 없습니다!!!!)

테스트케이스를 보면

6

3

3 4...중략

3 D 15 L 17 D

이 부분이 시작으로부터 X초 라는 기준인데.. 그부분을 이해를 못했어요 ㅠㅠ

그러니까 처음 3초는 최초방향인 오른쪽으로 진행하고

3초뒤, 그러니까 4초부터는 D로 방향을 바꿔준 뒤 12초동안 진행합니다(시작부터 현재 위치까지 총 15초) 즉 매번매번 다음행동까지 몇초남았나 를 계산하시면서 푸셔야합니다.


또한 테스트케이스의 부재로 몰랐는데

명령이 끝나면 거기서 정지가 아니라, 해당방향으로 끝날때까지 진행시켜야 합니다.

이게 되게 중요한 테스트케이스같은데 문제에는 없네요..

10

4

1 2

1 3

1 4

1 5

8 D

10 D

11 D

13 L

-----------------OUTPUT : 21

10

5

1 5

1 3

1 2

1 6

1 7

4

8 D

10 D 

11 D

13 L

------------OUTPUT : 13


첫번째 경우는 꼬리에 안박고 L로 방향전환 한 다음에, 벽에 꼬라박을때까지 진행하면 21이 나오구요.

두번째 경우는 꼬리에 박아서 13초에 죽게되네요.


저같은 실수 하실까봐...글남깁니다 ㅠ.ㅠ

DryType   7년 전

안녕하세요

시작으로부터 x초 라는걸 덕분에 알았네요.

하지만 사과를 여러개 먹을수 있다고 짰을때는 계속 틀렸는데

사과를 먹은다음 0으로 만들어주니 바로 정답이 됐습니다.

사과를 하나만 먹을수 있는게 아닐까요?

sukwoo0711   7년 전

@angs91

어..저는 사과를 먹을때마다 길이를 1씩 늘려서 진행했는데 문제없이 됐길래..

저기 위에 2케이스 결과가 다른이유가 꼬리길이가 달라서 충돌하는지 마는지에 결과값이 달라진거거든요.

사과를 여러개 먹는다는 의미가, 먹는횟수만큼 꼬리를 늘려준거아닌가요??


저는 뱀구현을 덱 자료구조를 이용해서 구현했는데

앞에 사과가 있으면 덱의 앞쪽(머리)에 추가해서 길이를 늘려줬고

이동할때는 덱의 뒤에서 1만큼 삭제하고, 앞에서 1을 추가하는식으로 이동시켰는데 그렇게 해서 사과먹은만큼 꼬리를 늘렸거든요

일단 사과부분은 글 내용 수정하도록 할게요..잘몰라서 ㅎㅎ;;


DryType   7년 전

저는 사과를 여러개 먹을수 있다는 뜻이 사과를 먹어도 안없어져서

그 칸에 있는 사과를 여러번 먹을수 있다는 것으로 이해했습니다.


sukwoo님이 생각하신게 맞습니다.


woo_06   7년 전

10

4

1 2

1 3

1 4

1 5

8 D

10 D

11 D

13 L

-----------------OUTPUT : 21

이 테스트케이스 과정에서 궁금한게 있는데요

제가 짠 코드에서는

지도 크기가 10이니까

(1,1)에서 8초 동안 오른쪽으로 이동해 머리 부분이 (1,9)가 되고

10초 동안 밑으로 이동해서 (11,9)가 되는 순간 끝나서 출력값이 18이 나오는데요

제가 뭘 잘못이해한거 일까요?

sukwoo0711   7년 전

(1,1)에서 8초 동안 오른쪽으로 이동해 머리 부분이 (1,9)가 되고

10초 동안 밑으로 이동해서 (11,9)가 되는 순간 끝나서 출력값이 18이 나오는데요


10초동안이라는개 게임을 시작한지 10초가 된거라  2초동안만 아래로 내려가는게 맞아요

woo_06   7년 전

아.. 드디어 이해했네요 ..ㅋㅋㅋ 감사합니다~~

201313987   7년 전

와 진짜 감사해요... 문제를 잘 못 이해하고있었네요 ㅠㅠ  덕분에 해결했습니다

mapmiddle   7년 전

원래 뱀게임이면 두번째 케이스때도 21이 나와야 맞는거 아닌가요......

예제가 부족해서 전혀 알수가 없었네요 ㅜㅜ

sukwoo0711   7년 전

@mapmiddle

원래 뱀게임이면 두번째 케이스는 13이 나와야 맞습니다.

꼬리랑 부딫쳐요.. 사과를 많이먹어서


위에 케이스는 꼬리가 짧아서, 성공적으로 회전한 뒤에 벽에 부딛쳐 죽는케이스인데

아래꺼는 꼬리가 길어서, 회전하는 도중에 부딛치네용

mapmiddle   7년 전

머리가 먼저 가냐 꼬리가 먼저 후퇴하냐의 차이졍...

두번째 케이스 같은경우에, 머리가 한칸 늘어나는 순간 꼬리랑 박는건데
고전 뱀게임이라면, 사과를 먹기전에는 항상 길이가 일정해서 꼬리도 같이 전진하기 때문에 절대 박을일은 없지만

이 문제같은 경우는 머리를 먼저 전진한다음에 무조건 사망 체크하는 걸로 바꾸니까 클리어 되었네요
한참 고생했습니다ㅜㅜ

좀더 극단적인 예제를 보여드리면


2
3
1 2
2 2
2 1
3
1 D
2 D 
3 D

여기서 고전 뱀게임에선 답은 5가 되지만 이 문제에서는 4가 되죠....

sukwoo0711   7년 전

@mapmiddle


제가 AC받은 코드에는 저 예제출력이 5가 나오네요..

mapmiddle   7년 전

?????

제가 AC 받은건 4가 나오네요

sukwoo0711   7년 전

@mapmiddle

테스트케이스가 부족한가보네요.. 실제로 대회tc로 다 돌려보는데 10가지 경우만 테스트하더라구요.

chanyup   6년 전

@mapmiddle

@sukwoo0711

2번째 테스트 케이스도 21로 통과했습니다. 

저도 윗분처럼 머리가 먼저가느냐 꼬리가 먼저  가느냐의 코드상의 위치차이라고만 생각하고 일단 제출해봤는데 통과되네요.

저는 머리랑 꼬리랑 동시에 없어지고 생기니 안박는다고 생각했거든요:)

chanyup   6년 전

@mapmiddle

@sukwoo0711

2
3
1 2
2 2
2 1
3
1 D
2 D 
3 D

이것도 5가 나오네요

chaeyuiop   6년 전

두 번째 케이스 21 나오는 코드로 제출하니까 자꾸 틀렸대서

13 나오게 바꾸니까 통과됐네요. (머리가 먼저 간 후 꼬리가 없어지게)

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