뭔가 자세히 보다가 결국 x축과 평행한 선의 갯수와 y축과 평행한 선의 갯수를 찾으면 된다는 것을 알게되었다.
map에 key값으로 x좌표와 y좌표를 따로 넣고, 같은 key값으로 숫자가 1번 이상 들어가게 된다면 평행한 선의 조건을 충족하므로 map으로 구현하였다.
key값만 따로 보관하는 방법을 찾지 못해서 set에 key값을 저장해주었다.
#include <bits/stdc++.h>
using namespace std ;
set<int> points ;
map<int, int> x_axis, y_axis ;
int N, x, y, answer ;
int main()
{
ios::sync_with_stdio(0), cin.tie(0) ;
cin >> N ;
for(int i = 0 ; i < N ; i++)
{
cin >> x >> y ;
x_axis[x]++ ;
y_axis[y]++ ;
points.insert(x) ;
points.insert(y) ;
}
for(set<int>::iterator i = points.begin() ; i != points.end() ; i++)
{
if(x_axis[*i] > 1) answer++ ;
if(y_axis[*i] > 1) answer++ ;
}
cout << answer << '\n' ;
}
문제 링크: https://www.acmicpc.net/problem/2358
'Problem Solving > 백준' 카테고리의 다른 글
[백준 / C++] 2295번 세 수의 합 풀이 (0) | 2023.02.14 |
---|---|
[백준/C++/ICPC] 4090번 뱀파이어 숫자 (2) | 2023.02.02 |
[백준/C++] 23826번 와이파이 (0) | 2023.01.18 |
[백준/C++] 25370번 카드 숫자 곱의 경우의 수 (0) | 2023.01.17 |
[백준/C++] 1920번 수 찾기 (0) | 2023.01.10 |