※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※
이번에 볼 문제는 백준 11580번 문제인 Footprint이다.
문제는 아래 링크를 확인하자.
https://www.acmicpc.net/problem/11580
11580번: Footprint
첫 번째 줄에 주현이가 내린 명령어들의 길이 L(1 ≤ L ≤ 1,000)이 주어진다. 그리고 두 번째 줄에 주현이의 명령이 EWSN들로 구성되어 주어진다. E는 동쪽, W는 서쪽, S는 남쪽, N은 북쪽을 의미한다.
www.acmicpc.net
직접 재윤이의 움직임을 시뮬레이션하면서 방문한 좌표들을 set에 저장하는 것으로 문제를 해결하자. 이 때 문제의 답은 set의 크기가 된다.
재윤이가 초기에 서있는 원점에도 발자국이 남겨져있음에 유의하자.
아래는 제출한 소스코드이다.
#include <iostream>
#include <set>
#include <vector>
#include <string>
using namespace std;
set<pair<int, int>> st;
int slen; string s;
int x, y;
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
st.insert({ 0,0 });
cin >> slen >> s;
for (auto& l : s) {
if (l == 'E') x++;
else if (l == 'W') x--;
else if (l == 'N') y++;
else y--;
st.insert({ x,y });
}
cout << st.size();
}
728x90
'BOJ' 카테고리의 다른 글
[BOJ 26544 // C++] Histogram Fencing (0) | 2022.12.23 |
---|---|
[BOJ 26731 // C++] Zagubiona litera (0) | 2022.12.23 |
[BOJ 6903 // C++] Trident (0) | 2022.12.23 |
[BOJ 26553 // C++] Work (0) | 2022.12.23 |
[BOJ 26736 // C++] Wynik meczu (0) | 2022.12.23 |