티스토리 뷰
https://www.acmicpc.net/problem/1253
투 포인터 문제이다.
해당 문제의 핵심은
1. 수의 범위는 정수다. 즉, 음의 정수와 0이 포함된다.
2. for loop을 통해 검사하고자 하는 배열에 현재 index가 포함되면 안된다.
위의 두가지 핵심을 놓쳐 조금 헤맸다...
일단 문제 풀이는
1. 수를 정렬한다.
2. 정렬된 배열의 for loop을 돌면서 투 포인터 알고리즘으로 수의 합을 계산한다.
3. left index는 항상 0번으로, right Index는 배열의 마지막 인덱스로 정한다. (핵심 1)
4. 수의 합이 작을 경우 left를 올려줘 값을 키우고, 클 경우 right을 내려줘 값을 내려 준다.
5. 배열에 현재 index를 빼준다. 현재 index를 제외한 새 배열을 만들거나, if 조건문을 사용하자.(핵심 2)
import sys
input = sys.stdin.readline
n = int(input())
a = [0 for _ in range(n)]
a = [int(value) for value in input().split()]
a.sort()
answer = 0
for i in range(0, len(a)):
leftIndex = 0
rightIndex = len(a) -1
while leftIndex < rightIndex:
if leftIndex == i:
leftIndex +=1
continue
elif rightIndex == i:
rightIndex -=1
continue
result = a[leftIndex] + a[rightIndex]
if result == a[i]:
answer +=1
break
elif result < a[i]:
leftIndex +=1
elif result > a[i]:
rightIndex -=1
print(answer)
'알고리즘' 카테고리의 다른 글
[python] 백준 욕심쟁이 판다 (1) | 2023.10.21 |
---|---|
[백준 1162] python 도로포장 (0) | 2023.07.23 |
python 비트 마스킹 (0) | 2023.06.19 |
[백준] 5214 환승 -JAVA (0) | 2022.03.07 |
[백준] 5719 거의 최단 경로 - JAVA (0) | 2022.03.03 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- react leva
- rollup typescript
- 카카오 카드 짝 맞추기 자바스크립트
- webpack glsl
- react fiber 3d
- rollup ts react npm
- react 3d
- ts glsl
- 카카오 카드 짝 맞추기 javascript
- next.js import glsl
- vue
- eslint
- react three fiber leva
- three.js leva
- react 3d text
- next.js glsl
- react three fiber
- rollup typescript react
- 카드 짝 맞추기 javascript
- leva
- vue3
- rollup react.js npm
- react glsl
- 카드 짝 맞추기 자바스크립트
- 카카오 2021 카드 짝 맞추기
- attempted import error: bvh_struct_definitions' is not exported from './gpu/bvhshaderglsl.js' (imported as 'bvhshaderglsl').
- typescript gsls
- Vue.js
- react 3d 에니메이션
- react 3d animation
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 26 | 27 | 28 |
29 | 30 | 31 |
글 보관함