로고 2

면접 대비

시간 제한1초메모리 제한128 MB

요약
거북 그래픽 프로그램에서 숫자 하나가 물음표로 가려져 있을 때, 거북이 시작점으로 돌아오게 하는 값을 찾는다.
난이도

보통10점 중 5점

유형
기하, 수학, 구현, 시뮬레이션
정답자
아직 제출이 없습니다

문제

Logo는 거북이를 중심으로 만들어진 프로그래밍 언어이다. 거북이는 종이 위를 움직이며, 움직일 때 펜으로 선을 그린다. 우리는 거북이가 그림을 그린 뒤 출발한 지점으로 다시 돌아오게 하고 싶다.

거북이는 네 가지 명령을 이해한다.

  • fd d: 거북이를 앞으로 dd만큼 움직인다.
  • bk d: 거북이를 뒤로 dd만큼 움직인다.
  • lt a: 거북이를 왼쪽(반시계 방향)으로 aa도 회전시킨다.
  • rt a: 거북이를 오른쪽(시계 방향)으로 aa도 회전시킨다.

예를 들어 다음 프로그램은

fd 100 lt 120 fd 100 lt 120 fd 100

한 변의 길이가 100인 정삼각형을 그리며, 실행이 끝나면 거북이는 출발한 자리로 돌아온다. 모든 거리와 각도는 음이 아닌 정수이다.

그런데 프로그램을 급히 적는 바람에 숫자 하나를 알아볼 수 없게 되었다. 프로그램이 끝날 때 거북이가 출발 지점으로 돌아온다고 할 때, 사라진 숫자를 구하라.

입력

첫째 줄에 테스트 케이스의 수가 주어진다. 각 테스트 케이스는 명령의 개수가 적힌 줄로 시작하고, 그 뒤에 명령이 한 줄에 하나씩 주어진다. 각 테스트 케이스의 명령은 10001000개를 넘지 않는다. 각 명령의 인수는 정수 또는 물음표(?)이며, 각 테스트 케이스에는 물음표가 정확히 하나 있다.

출력

각 테스트 케이스마다, 물음표를 대신 넣었을 때 거북이가 출발 지점으로 돌아오게 하는 정수 nn을 한 줄에 출력한다. 물음표가 lt 또는 rt 명령의 인수이면, 답은 00도 이상 359359도 이하여야 한다. 답은 항상 정수이며, 모든 테스트 케이스에는 정답이 정확히 하나 존재한다.

예제2

  1. 예제 1

    입력
    1
    5
    fd 100
    lt 120
    fd ?
    lt 120
    fd 100
    
    예상 출력
    100
    
  2. 예제 2

    입력
    1
    7
    fd 100
    lt 90
    fd 100
    lt ?
    fd 100
    lt 90
    fd 100
    
    예상 출력
    90