42서울

파란색 발판에서 반대 방향으로 시작하는데, 먼저 방향을 돌리고, 직진 시킨 뒤, 빨간 발판이 나오면 계단 이동을 해야한다. F1은 방향을 전환하는 역할만 한다. 처음 시작할 때 우주선?의 방향을 뒤로 돌린 뒤에 F2를 호출한다. F2는 이후의 모든 작업을 수행하는데, 우선 파란색 발판일 때는 직진만 한다. 이후 빨간색 발판에 도착하면 방향을 90도 꺾는다. 그 다음 한 칸을 직진할 것이고, 이후 초록색 발판에 도착하면 또 반대로 90도를 꺾는다. 그렇게 계속 반복. [19/50]
난이도가 낮은 문제임 [18/50]
초록색 발판일 때 빨간색 발판으로 가게 만든 뒤, 빨간색 발판일 때 방향을 틀도록 유도해야 한다. 42서울 시험 딱 50문제만 풀고 가자...
딱 세개의 타일을 가지고 푸는 문제. 어렵게 생각할 필요 없다. 실행이 오래 걸린다..
가운데 빨간색 발판을 시작으로 4 방향으로 별이 존재하는 맵이다. 직진과 방향 전환 만으로 풀 수 있다. F1은 초록색 발판이 나오면 F2를 실행하고, 빨간색 발판이 나오면 방향을 90도 전환한다. F2는 한 칸을 전진 한 뒤에 방향을 한 바퀴 돌려 다시 중앙을 향하게 한다.
한줄짜리 맵인데 함수가 5개나 있다. 결국 함수를 연달아 호출해야 하는 문제인 것 같음. 보기보다 어려웠다. F5를 쓰지 않아도 풀 수 있었다. F1는 방향을 틀고 F2를 호출하고, F2에서 빨간색 발판이면 F4, 빨간색 발판이 아니면 F3을 호출한다.
처음에 이 문제를 봤을 때는 굉장히 쉽게 풀 줄 알았다. 파란색 발판에서는 직진, 빨간색 발판일 때만 우회전을 하면 되니까. 엄청나게 단순하게 풀 줄 알았는데, 이게 답이 아니었다! 왜냐하면 처음 시작 지점 바로 뒤편에 별이 하나 있었기 때문이다. 결국은 처음 시작할 때 뒤로 돌아 별을 먹고 오던지, 아니면 쭉 가다가 초록색 지점에 도착하고 뒤로 돌아 가던지 선택해야 했다. 나는 처음 시작할 때 뒤로 돌아 별을 먹고 진행하는 방법을 선택했다. 깔끔한 정답은 아닐 거 같다는 생각이 든다. 하지만 그래도 풀었으니까.. ㅎㅎ 처음으로는 F1에서 뒤로 돌고 F3를 실행하고, F3는 별을 먹고 다시 뒤로 돈다. 그리고 F2 무한 반복.
말 그대로 두 개의 함수를 이용해서 풀어야 하는 문제다. F1과 F2를 반복시켜 도달하면 끝! F1은 한칸 직진, 한칸 오른쪽으로 꺾고 F2를 호출하고, F2역시 한칸 직진, 한칸 왼쪽으로 꺾고 F1을 호출함. 두 개의 함수를 서로 호출하게끔 한다는 점이 재밌었다.
아주 쉬운 문제는 아니다. F2, F3이 있는 만큼 어떤 함수를 어떻게 반복할 것인지가 관건이 된다. 두 칸 직진후 좌회전, 또는 우회전이 반복되는 구조라 다음과 같이 함수를 구성했다. F2: 직진 2번, 좌회전 한번 F3: 직진 2번, 우회전 한번 이게 유일한 답은 아니겠지만, 나는 이렇게 풀었다.
두번 직진하고 꺾다가, 위쪽의 긴 라인에서는 쭉 직진을 해야하는 것이 포인트. 결국은 초록색 발판에서 꺾는 것을 다시 원래대로 돌리는 명령을 수행해야 한다.
kmicety1
'42서울' 태그의 글 목록 (3 Page)