[백준 28295] 체육은 코딩과목 입니다 (C#, C++) - soo:bak
작성일 :
문제 링크
설명
10개의 회전 명령이 주어질 때, 북쪽을 바라보고 시작하여 최종 방향을 구하는 문제입니다.
우향우는 시계 방향 90도, 뒤로 돌아는 180도, 좌향좌는 반시계 방향 90도 회전입니다.
접근법
방향을 0부터 3까지의 숫자로 표현합니다. 북, 동, 남, 서 순서입니다.
각 명령에 따라 방향을 갱신하고, 최종 방향을 출력합니다.
Code
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
using System;
class Program {
static void Main() {
var dir = 0;
for (var i = 0; i < 10; i++) {
var t = int.Parse(Console.ReadLine()!);
if (t == 1) dir = (dir + 1) % 4;
else if (t == 2) dir = (dir + 2) % 4;
else dir = (dir + 3) % 4;
}
var compass = new[] {'N', 'E', 'S', 'W'};
Console.WriteLine(compass[dir]);
}
}
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int dir = 0;
for (int i = 0; i < 10; i++) {
int t; cin >> t;
if (t == 1) dir = (dir + 1) % 4;
else if (t == 2) dir = (dir + 2) % 4;
else dir = (dir + 3) % 4;
}
const char compass[4] = {'N', 'E', 'S', 'W'};
cout << compass[dir] << "\n";
return 0;
}