1253번: 좋다
문제 )
N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다.
N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라.
수의 위치가 다르면 값이 같아도 다른 수이다.
입력 :
첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)
출력 :
좋은 수의 개수를 첫 번째 줄에 출력한다.
풀이)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
n = int(input())
li = list(map(int, input().split()))
li.sort()
x = li[0]
y = li[n - 1]
cnt = 0
for i in range(n):
temp = li[:i] + li[i+1:] # i를 제외한 임시 리스트
s = 0
e = len(temp) - 1
while s < e:
total = temp[s] + temp[e]
if total == li[i]:
cnt += 1
break
elif total < li[i]: # s를 한칸 밀어 total을 크게
s += 1
else: # e를 한칸 당겨 total을 작게
e -= 1
print(cnt)
|
cs |
출처 : https://www.acmicpc.net/problem/1253
1253번: 좋다
첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수)
www.acmicpc.net
'Develop > 백준 (python)' 카테고리의 다른 글
[백준] 1620번: 나는야 포켓몬 마스터 이다솜 (python) (0) | 2022.02.03 |
---|---|
[백준] 11723번: 집합 (python) (0) | 2022.02.03 |
[백준] 2467번: 용액 (python) (0) | 2022.02.02 |
[백준] 11728번: 배열합치기 (python) (0) | 2022.02.02 |
[백준] 18111번: 마인크래프트 (python) (0) | 2022.02.01 |