hyei-devlog

[Python/파이썬] 백준 1247 부호 본문

Online Judge/Baekjoon

[Python/파이썬] 백준 1247 부호

winter126 2025. 1. 26. 04:57

📍 문제

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

 

📍 전체 코드

import sys
input = sys.stdin.readline

for _ in range(3):
    N = int(input())
    flag = sum(int(input()) for _ in range(N))
    if flag == 0:
        print(0)
    elif flag < 0:
        print('-')
    else:
        print('+')

 

📍 문제 풀이

  • sum(int(input()) for _ in range(N)) 한 번에 여러 입력을 받아서 합산
  • flag == 0일 때는 0을 출력하고, flag < 0일 때는 -를 출력, flag > 0일 때는 +를 출력

 

📍 문제 해결을 위한 고민

import sys
input = sys.stdin.readline

 
추가해주지 않았더니 채점 시간이 너무 오래걸렸다. (기다리면 정답입니다!는 뜬다)

 

⭐️  중요 포인트

input = sys.stdin.readline

 
기본적으로 input() 함수는 한 줄을 입력받고, 문자열로 반환하는 함수이다. 하지만 이 함수는 느리기 때문에 많은 입력을 빠르게 처리해야 할 경우 sys.stdin.readline을 사용하는 것이 성능 면에서 더 유리하다.
 
sys.stdin.readline은 한 줄을 입력받고 그 값을 문자열로 반환하는데, input()보다 훨씬 빠르기 때문에 대량의 데이터를 처리할 때 유용하다.