Algorithm/C++ BOJ

C++) [BOJ] 9610 사분면

HSH12345 2023. 3. 15. 23:41

9610번: 사분면 (acmicpc.net)

 

9610번: 사분면

2차원 좌표 상의 여러 점의 좌표 (x,y)가 주어졌을 때, 각 사분면과 축에 점이 몇 개 있는지 구하는 프로그램을 작성하시오.

www.acmicpc.net

 

#include<iostream>;
#include<map>;
using namespace std;

int main() {

	int n, a, b;
	cin >> n;

	map<string, int> m;
	m.insert(pair<string, int>("Q1: ", 0));
	m.insert(pair<string, int>("Q2: ", 0));
	m.insert(pair<string, int>("Q3: ", 0));
	m.insert(pair<string, int>("Q4: ", 0));
	m.insert(pair<string, int>("AXIS: ", 0));

	for (int i = 0; i < n; i++) {
		
		cin >> a >> b;
		if (a == 0 || b == 0) m["AXIS: "]++;
		else if (a > 0 && b > 0) m["Q1: "]++;
		else if (a > 0 && b < 0) m["Q4: "]++;
		else if (a < 0 && b > 0) m["Q2: "]++;
		else if (a < 0 && b < 0) m["Q3: "]++;
	}

	for (auto iter = m.begin(); iter != m.end(); iter++)
	{
		if(iter -> first != "AXIS: ") cout << iter->first << iter->second << "\n";		
	}

	cout << m.begin() -> first << m.begin() -> second << "\n";
}

 

쉬운 문제였지만 map의 기능을 활용하여 해당 기능을 연습하였다.