※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 20493번 문제인 세상은 하나의 손수건이다.
문제는 아래 링크를 확인하자.
20493번: 세상은 하나의 손수건
오래된 운동화를 신고, 시원한 공기와 투명한 하늘 아래 따뜻한 햇빛을 받으며 새로 마주하는 이 거리와 손잡고 걷는다. 복잡한 생각 없이 설레는 마음으로 걷다 보면 뛰고 싶고, 같이 달리다 보
www.acmicpc.net
이 문제는 주어진 입력을 받아 순서대로 이어서 처리하는 문제이다.
문제에서 시키는 대로 하면 금방 풀 수 있다.
함수를 정의하면 더 간단히 풀 수 있었을 것 같은 아쉬움이 남는다.
#include <iostream>
#include <string>
using std::string;
using std::cin;
using std::cout;
int main()
{
std::ios::sync_with_stdio(0);
cin.tie(0);
int x = 0, y = 0, timebefore = 0;
int N, T;
cin >> N >> T;
int temp_T;
int dir=0; // 0: x방향 , 1: y방향, 2: -x방향, 3: -y방향
string temp_dir;
for (int i = 0;i < N;i++) {
cin >> temp_T >> temp_dir;
if (dir == 0) {
x += (temp_T - timebefore);
}
else if (dir == 1) {
y += (temp_T - timebefore);
}
else if (dir == 2) {
x -= (temp_T - timebefore);
}
else y -= (temp_T - timebefore);
timebefore = temp_T;
if (temp_dir == "right") {
dir = (dir - 1) % 4;
if (dir < 0) dir += 4;
}
else dir = (dir + 1) % 4;
}
// 마지막 움직임
if (dir == 0) {
x += (T - timebefore);
}
else if (dir == 1) {
y += (T - timebefore);
}
else if (dir == 2) {
x -= (T - timebefore);
}
else y -= (T - timebefore);
cout << x <<' '<< y;
return 0;
}
'BOJ' 카테고리의 다른 글
[BOJ 20495 // C++] 수열과 헌팅 (0) | 2021.01.26 |
---|---|
[BOJ 20494 // C++] 스시 (0) | 2021.01.25 |
[BOJ 6603 // C++] 로또 (0) | 2021.01.23 |
[BOJ 15610 // C++] Abbey Courtyard (0) | 2021.01.22 |
[BOJ 1533 // C++] 길의 개수 (0) | 2021.01.21 |