카테고리 없음

프로그래머스 실습용 로봇 (힌트)

송코딩 songcoding 2023. 5. 23. 19:42

안녕하세요, 여러분~~ㅎ.ㅎ

 

사실 그냥 for문과 if문만 있으면 충분히 풀 수 있는 문제입니다!

(다들 아시겠지만 모든 코딩테스트 문제는 배열과 for문, if문만 있으면 다 풀 수 있다고 했잖아유?)

 

쉽고 빠르고 효율적으로 풀려면 %와 이차원 배열이 필요하겠지만

꼭 그렇게 쓰지 않으셔도 된다는 거에요!

 

 

혹시 %와 이차원 배열로 빠르게 풀어보고 싶은 분들을 위한 힌트 드려 볼텡께, 참고해서 봐보죠!

 

 

1. 로봇의 각도는 위, 오른쪽, 아래, 왼쪽을 바라 봅니다. 

제가 웬만하면 다 숫자로 바꿔서 생각해보자 했죠?

우리는 개발자들이니ㅋㅋ 0부터 시작한다고 보고 + 시계 방향으로 90도씩 회전한다고 생각하면!

위 = 0, 오른쪽 = 1, 아래 = ... 맞죠?

0 % 4 = 0
1 % 4 = 1
2 % 4 = 2
3 % 4 = 3
4 % 4 = 0
5 % 4 = 1
...

 

그럼 "오른쪽으로 90도 회전하겠다!"

이 문장을 식으로 어떻게 표현하실 건가요~?

 

예를 들어, var direction = 0; (위) 로 시작한다면

오른쪽으로 90도 회전이면? direction = _______________;

왼쪽으로 90도 회전이면? direction = _________________;

 

 

2. 로켓의 방향에 따라서, G(o)가 나오면 x 값이 변할지, y 값이 변할지 다르죠?

    위를 바라 볼 때(= direction이 0일 때) G가 나오면, y + 1

    오른쪽을 바라 볼 때(= direction이 1일 때) G가 나오면, x + 1

    아래쪽을 바라 볼 때(= direction이 2일 때) G가 나오면, y - 1 

    왼쪽을 바라 볼 때(= direction이 3일 때) G가 나오면, x - 1

 

 

3. 심지어 로켓의 방향에 따라 B(ack)이 나오면 반대로 움직이네요?

    위를 바라 볼 때 B가 나오면, y - 1

    오른쪽을 바라 볼 때 B가 나오면, x - 1

    아래쪽을 바라 볼 때 B가 나오면, y + 1 

    왼쪽을 바라 볼 때 B가 나오면, x + 1

 

 

 

 

 

그럼 여러분 화이팅🤞