99클럽 코테 스터디 12일차 TIL + 백준 2358번 평행선(Python)

모래·2025년 4월 11일

99클럽 스터디

목록 보기
10/20
post-thumbnail

✔️오늘의 학습 키워드

  • 해시

  • 해시를 사용한 집합과 맵

  • 백준 2358번 평행선


✔️ 공부한 내용

📌 오늘의 문제


📌 작성 코드

import sys
input = sys.stdin.readline
x_coor, y_coor = {}, {} # 각각 x, y좌표 횟수를 저장
for _ in range(int(input())):
    x,y = map(int,input().split())
    # x좌표 세기
    if x in x_coor:
        x_coor[x] += 1
    else:
        x_coor[x] = 1
    # y좌표 세기
    if y in y_coor:
        y_coor[y] += 1
    else:
        y_coor[y] = 1
count = 0 # 직선 수
for i in x_coor:
    if x_coor[i] > 1:
        count += 1
for i in y_coor:
    if y_coor[i] > 1:
        count += 1
print(count)

✔️ 오늘의 회고

📌 문제 및 시도 방법

해시를 이용해 풀기 위해 딕셔너리를 사용했다.
핵심은 직선을 그리려면 x좌표에 같은 값이 2개 이상일 경우 그 x좌표를 지나는 세로 직선을 하나 그릴 수 있고, y좌표도 마찬가지로 y좌표에 같은 값이 2개 이상이면 가로 직선을 하나 그릴 수 있다는 점이다.

📌 문제 해결 방법

  1. x,y 좌표를 n만큼 반복하여 입력받는다.
  2. x좌표가 x_coor에 존재하면 + 1, 존재하지 않으면 첫 등장이므로 1
    y좌표가 y_coor에 존재하면 + 1, 존재하지 않으면 첫 등장이므로 1
  3. x_coor에 같은 x좌표가 2개 이상이라면 직선을 만들 수 있으므로 직선 개수 + 1
    y_coor에 같은 y좌표가 2개 이상이라면 직선을 만들 수 있으므로 직선 개수 + 1
  4. 총 직선의 개수 출력

📌 새롭게 안 내용


첫번째 제출한 코드와 두번째 제출한 코드의 차이는

import sys
input = sys.stdin.readline

단 이 부분이다.
저렇게 반복문으로 많은 횟수를 입력을 받을 때는, 저 코드를 통해 입력받는 것이 시간을 많이 단축할 수 있다.

📌 내일 학습할 내용

한 주간 풀었던 문제들 복습하기


#99클럽 #코딩테스트준비 #개발자취업 #항해99 #TIL

profile
꾸준히 성장하는 웹 백엔드 개발자가 되자🔥

0개의 댓글