3273번: 두 수의 합
n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주어졌을 때, ai + aj = x (1 ≤ i < j ≤ n)을 만족하는
www.acmicpc.net
일단 첫번째 시도
장렬히 실패~!
시간초과 남요
근데 이거 코드 짜면서도
내가 골때려서 좀 웃겼음
import sys
input = sys.stdin.readline
n = int(input())
arr = list(input().split())
x = int(input())
arr.sort()
ans = []
for i in arr:
for j in arr[::-1]:
if i == j :
continue
elif int(i) + int(j) == x:
if not i +','+ j in ans and not j + ',' + i in ans:
ans.append(i+','+j)
print(len(ans))
두번째 시도
도 장렬히 실패
시간초과 뜸
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int,input().split()))
x = int(input())
cnt = 0
for i in arr:
if x - i in arr:
arr.remove(i)
arr.remove(x-i)
cnt += 1
print(cnt)
여기서 어떻게 더 줄이지 머리 싸매다가
쉴겸 주식 확인했는데
lg화학 3개월을 갖고 살다가 걍 5만원 손해보고 어제 나왔는데
오늘 바로 오르네용 크크 잼네용
결국 구글링 했슴니당
import sys
input = sys.stdin.readline
n = int(input())
arr = list(map(int,input().split()))
x = int(input())
arr.sort()
fp=0
ep=len(arr)-1
ans = 0
while fp != ep:
if arr[fp] + arr[ep] == x:
ep -= 1
ans += 1
else:
if arr[fp] + arr[ep] < x:
fp += 1
else:
ep -= 1
print(ans)
태그?에 두 포인터 있었는데
활용 못 하고 있었네용,,
배워갑니당
양쪽 포인터를 어떻게 움직이는지가 완전
👍
알고리즘 - Python / 백준 - 3273번 : 두 수의 합 (tistory.com)
알고리즘 - Python / 백준 - 3273번 : 두 수의 합
3273번: 두 수의 합 (acmicpc.net) 3273번: 두 수의 합 n개의 서로 다른 양의 정수 a1, a2, ..., an으로 이루어진 수열이 있다. ai의 값은 1보다 크거나 같고, 1000000보다 작거나 같은 자연수이다. 자연수 x가 주
ddggblog.tistory.com
이 분 상당하십니당
'BOJ' 카테고리의 다른 글
[python] 백준 10025번 - 게으른 백곰 (3) | 2023.02.18 |
---|---|
[python] 백준 14425번 - 문자열 집합(파이썬 (2) | 2023.02.17 |
[python] 백준 1448번 - 삼각형 만들기(파이썬) (2) | 2023.02.16 |
[python] 백준 2992번 - 크면서 작은 수 (2) | 2023.02.16 |
[python] 백준 1951번 - 활자 (4) | 2023.02.15 |
댓글