최대 1 분 소요

1. 문제Permalink

[Bronze III] 사분면 - 9610Permalink

문제 링크

성능 요약Permalink

메모리: 30840 KB, 시간: 64 ms

분류Permalink

구현(implementation), 수학(math)

문제 설명Permalink

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

입력Permalink

첫째 줄에 점의 개수 n (1 ≤ n ≤ 1000)이 주어진다. 다음 n개 줄에는 점의 좌표 (xi, yi)가 주어진다. (-106 ≤ xi, yi ≤ 106)

출력Permalink

각 사분면과 축에 점이 몇 개 있는지를 예제 출력과 같은 형식으로 출력한다.

출처: 백준, https://https://www.acmicpc.net/

2. 해결방법 시간복잡도Permalink

  1. 단순 코딩 O(N)

3. 문제 해결 및 코드Permalink


import sys
N = int(sys.stdin.readline())
axis = 0
grap = {'Q1': 0,
'Q2': 0,
'Q3': 0,
'Q4': 0}
for i in range(N):
x, y = map(int, sys.stdin.readline().split())
if x == 0 or y == 0:
axis += 1
if x > 0 and y > 0:
grap['Q1'] += 1
elif x > 0 and y < 0:
grap['Q4'] += 1
elif x < 0 and y < 0:
grap['Q3'] += 1
elif x < 0 and y > 0:
grap['Q2'] += 1
print(f"Q1: {grap['Q1']}")
print(f"Q2: {grap['Q2']}")
print(f"Q3: {grap['Q3']}")
print(f"Q4: {grap['Q4']}")
print(f"AXIS: {axis}")
view raw 9510.py hosted with ❤ by GitHub
  • 주석을 참고하면서 이해를 돕습니다.Permalink

4. 알고리즘 및 해설Permalink

  1. 딕셔너리 형태로 각각의 분면마다 값을 미리 지정해준다.
  2. 이후 반복문을 통해 두 값을 입력받고 4분면의 특징에 따라 값을 딕셔너리에 더해준다.
    • 이때 축에 존재하는 값도 따로 더해준다.
  3. 최종적으로 각각의 분면에 입력된 값들을 출력해준 뒤 축에 존재하는 값도 출력해준다.