부호 [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이면 "-"를 출력하면 된다. 예시
- 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 |