부호 [1247]

2021. 1. 30. 23:47알고리즘/파이썬

반응형

부호 [1247]

백준 - https://www.acmicpc.net/problem/1247

 

1247번: 부호

총 3개의 테스트 셋이 주어진다. 각 테스트 셋의 첫째 줄에는 N(1≤N≤100,000)이 주어지고, 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다. 주어지는 정수의 절댓값은 9223372036854775807보다 작거나

www.acmicpc.net

문제

  • N개의 정수가 주어지면, 이 정수들의 합 S의 부호를 구하는 프로그램을 작성하시오.

 


입력

  • 총 3개의 테스트 셋이 주어진다.
  • 각 테스트 셋의 첫째 줄에는 N(1≤N≤100,000)이 주어진다.
  • 둘째 줄부터 N개의 줄에 걸쳐 각 정수가 주어진다.
  • 주어지는 정수의 절댓값은 9223372036854775807보다 작거나 같다.

출력

  • 총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다.
    • S=0이면 "0"을, S>0이면 "+"를, S<0이면 "-"를 출력하면 된다. 예시

총 3개의 줄에 걸쳐 각 테스트 셋에 대해 N개의 정수들의 합 S의 부호를 출력한다.

  • S=0이면 "0"을, S>0이면 "+"를, S<0이면

 


풀이과정

  • 빈리스트에 케이스 값을 넣어서 리스트의 sum 을 통해서 합을 구한다,
  • 합의 부호를 판별하고 정답 리스트에 .append() 한다.
  • sum 을 이용했던 리스트는 다음 케이스를 위해 .clear() 해준다.

※ 수정 ※

  • input 의 경우 파이썬 구동에 느리기 때문에 sys.stdin.readline() 을 이용했다.
  • 크게 달라진점은 append 를 이용해 리스트를 거치지 않고 바로 print 를 했다는 점이다.
  • 그런데 이경우 케이스마다 '+', '0', '-' 가 출력되는데 원래 한꺼번에 출력해야 하는게 아닌가 의문이다.

 


느낀점

  • 처음 알고리즘을 풀어보다보니 입력값을 받을 당시 input 을 많이 생각하게 되었다.

    • input의 값을 받는 방식에따라 문제풀이에도 변경이되서 고민
    • 3개의 케이스를 받기 때문에 range 를 통해서 해결하였다.
  • 브론즈 3의 문제였는데 그렇게 어렵지 않고 기본적인 문제 같았다.

반응형

'알고리즘 > 파이썬' 카테고리의 다른 글

성 지키기 [1236]  (0) 2021.02.02
단어 공부 [1157]  (0) 2021.02.02
명령 프롬프트 [1032]  (0) 2021.02.02
직사각형에서 탈출 [1085]  (0) 2021.02.02
더하기 사이클[1110]  (0) 2021.01.31