※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 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

+ Recent posts