[백준/C++] 맥주 마시면서 걸어가기_9205

leeact·2023년 5월 22일
1

[백준/c++]

목록 보기
12/24
post-thumbnail

📝 문제

https://www.acmicpc.net/problem/9205

💻 코드

#include <iostream>
#include <queue>
#include <vector>

using namespace std;

struct Node {
	int x;
	int y;
};

int main() {
	ios::sync_with_stdio(false);
	cin.tie(0);
	cout.tie(0);

	int t;
	cin >> t;

	for (int i = 0; i < t; i++) {
		int n;
		cin >> n;	// 맥주를 파는 편의점 수
		int now_row, now_col;
		vector<Node> cq;
		queue<Node> q;
		int ex, ey;
		bool flag = true;
		cin >> now_row >> now_col;
		for (int i = 0; i < n; i++) {
			int cx, cy;
			cin >> cx >> cy;
			cq.push_back({ cx, cy });
		}
		cin >> ex >> ey;
		int check[101] = { 0, };
		q.push({ now_row, now_col });

		// 출발하기!
		while (!q.empty()) {
			Node now = q.front();
			q.pop();

			if ((abs(now.x - ex) + abs(now.y - ey)) <= 1000) {
				flag = false;
				break;
			}
			int dx, dy;
			for (int i = 0; i < cq.size(); i++) {
				if (check[i] == 1) continue;	// 이미 한번 갔으면...

				Node conv = cq[i];
				if ((abs(now.x - conv.x) + abs(now.y - conv.y)) <= 1000) {
					check[i] = 1;
					q.push({ conv.x, conv.y });
				}

			}
		}

		if (flag)
			cout << "sad";
		else
			cout << "happy";
		cout << "\n";
	}

	return 0;
}

💡 Point

와 진짜 문제 cout << "\n"; 안써서 인생 손해봤다...

2개의 댓글

comment-user-thumbnail
2023년 5월 22일

2시간 넘게 맥주 마시면서 걸어갔다는 소문이 있던데요?

1개의 답글