안녕하세요
시작으로부터 x초 라는걸 덕분에 알았네요.
하지만 사과를 여러개 먹을수 있다고 짰을때는 계속 틀렸는데
사과를 먹은다음 0으로 만들어주니 바로 정답이 됐습니다.
사과를 하나만 먹을수 있는게 아닐까요?
3190번 - 뱀
@angs91
어..저는 사과를 먹을때마다 길이를 1씩 늘려서 진행했는데 문제없이 됐길래..
저기 위에 2케이스 결과가 다른이유가 꼬리길이가 달라서 충돌하는지 마는지에 결과값이 달라진거거든요.
사과를 여러개 먹는다는 의미가, 먹는횟수만큼 꼬리를 늘려준거아닌가요??
저는 뱀구현을 덱 자료구조를 이용해서 구현했는데
앞에 사과가 있으면 덱의 앞쪽(머리)에 추가해서 길이를 늘려줬고
이동할때는 덱의 뒤에서 1만큼 삭제하고, 앞에서 1을 추가하는식으로 이동시켰는데 그렇게 해서 사과먹은만큼 꼬리를 늘렸거든요
일단 사과부분은 글 내용 수정하도록 할게요..잘몰라서 ㅎㅎ;;
(1,1)에서 8초 동안 오른쪽으로 이동해 머리 부분이 (1,9)가 되고
10초 동안 밑으로 이동해서 (11,9)가 되는 순간 끝나서 출력값이 18이 나오는데요
10초동안이라는개 게임을 시작한지 10초가 된거라 2초동안만 아래로 내려가는게 맞아요
원래 뱀게임이면 두번째 케이스는 13이 나와야 맞습니다.
꼬리랑 부딫쳐요.. 사과를 많이먹어서
위에 케이스는 꼬리가 짧아서, 성공적으로 회전한 뒤에 벽에 부딛쳐 죽는케이스인데
아래꺼는 꼬리가 길어서, 회전하는 도중에 부딛치네용
테스트케이스가 부족한가보네요.. 실제로 대회tc로 다 돌려보는데 10가지 경우만 테스트하더라구요.
2번째 테스트 케이스도 21로 통과했습니다.
저도 윗분처럼 머리가 먼저가느냐 꼬리가 먼저 가느냐의 코드상의 위치차이라고만 생각하고 일단 제출해봤는데 통과되네요.
저는 머리랑 꼬리랑 동시에 없어지고 생기니 안박는다고 생각했거든요:)
댓글을 작성하려면 로그인해야 합니다.
sukwoo0711 7년 전 13
일단 사과는 여러개 먹을 수 있는게 맞습니다. (과거 질문에 한개만 먹을수있다고 하길래 그거생각해서 짰다가.. 시간을 많이먹었네요 ㅠㅠ)
(여러 개 를 먹을 수 있지, 한 위치에 있는 사과를 여러번 먹을수는 없습니다!!!!)
테스트케이스를 보면
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
4
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초에 죽게되네요.
저같은 실수 하실까봐...글남깁니다 ㅠ.ㅠ