트랙
/
Haskell
Haskell
/
연습 문제
/
로봇 시뮬레이터
로봇 시뮬레이터

로봇 시뮬레이터

쉬움

지침

로봇 시뮬레이터를 만들어요.

로봇 공장의 시험 시설에는 로봇의 움직임을 검증할 프로그램이 필요해요.

로봇이 할 수 있는 움직임은 세 가지예요:

  • 오른쪽으로 회전
  • 왼쪽으로 회전
  • 전진

로봇은 가상의 무한 격자에서 특정 방향(north, east, south, west 중 하나)을 향한 채 {x,y} 좌표, 예를 들어 {3,8}에 놓여요. 좌표는 north와 east 방향으로 갈수록 커져요.

그다음 로봇은 여러 명령을 받아요. 그러면 시험 시설이 로봇의 새로운 위치와 로봇이 향하고 있는 방향을 검증해요.

  • 문자열 "RAALAL"은 다음과 같은 뜻이에요:
    • 오른쪽으로 회전
    • 두 번 전진
    • 왼쪽으로 회전
    • 한 번 전진
    • 또다시 왼쪽으로 회전
  • 로봇이 {7, 3}에서 north 방향을 향한 채 시작한다고 해봐요. 그러면 이 명령들을 실행했을 때 로봇은 {9, 4}에서 west 방향을 향하고 있어야 해요.

힌트

이 연습 문제를 완료하려면 Robot 데이터 타입을 만들고, 다음 함수를 구현해야 해요:

  • bearing
  • coordinates
  • mkRobot
  • move

더미 데이터 선언과 타입 시그니처는 이미 준비되어 있지만, 함수를 정의하고 의미 있는 데이터 타입이나 newtype, 또는 타입 동의어를 만드는 일은 직접 해야 해요.


출처

유명 기업의 면접 질문에서 영감을 받았어요.
GitHub에서 편집 링크가 새 창이나 탭에서 열려요
Haskell Exercism

로봇 시뮬레이터 문제를 시작해 볼 준비가 됐나요?

Exercism에 가입하고 Haskell 트랙을 연습 문제 107개, 그리고 실제 사람의 멘토링과 함께 배우고 익혀 보세요. 모두 무료예요.