티스토리 뷰
728x90
문제
풀이
1. 입력받은 용액 값을 오름차순으로 정렬한다.
2. start 값에 0, end 값에 n-1, cstart 값에 start값, cend값에 end값 대입 후 while문을 통해 인덱스 차이를 줄여가며 배열 값이 음수에서 양수로 넘어가는 부분까지 계산을 해줄 예정
[-99, -2, -1, 4, 98] -> -99+98 계산한 값 czero 값에 담고 while 문 시작
3. while문의 조건은 음수에서 양수로 넘어가는 부분까지 계산을 해줄 예정이기에 start<end 인 경우에만 돌아가게 하면 된다.
4. 현재의 start, end 인덱스에 존재하는 값의 합이 czero 보다 작다면 czero 값에 대입해주고 cstart와 cend 값도 바꿔주고, czero 값이 0일 경우엔 더이상 while 문을 돌리지 않고 break
5. tmp 값이 음수 -> start += 1, tmp 값이 양수 -> end -=1
소스코드
import sys
input = sys.stdin.readline
n = int(input())
arr = sorted(list(map(int, input().split())))
start = 0
end = n-1
czero = abs(arr[start]+arr[end])
cstart = start
cend = end
while start<end:
tmp = arr[start]+arr[end]
if abs(tmp) < czero:
cstart = start
cend = end
czero = abs(tmp)
if czero == 0:
break
if tmp > 0:
end -= 1
else:
start += 1
print(arr[cstart], arr[cend])
반응형
'Coding - Algo > python' 카테고리의 다른 글
[2021카카오공채] 신규 아이디 추천 (python 파이썬) (0) | 2021.02.04 |
---|---|
[2020카카오인턴십] 보석 쇼핑 (python 파이썬) (0) | 2021.02.04 |
[백준] 8939번:사냥꾼 (python 파이썬) (0) | 2021.02.01 |
[백준] 2805번:나무 자르기 (python 파이썬) (0) | 2021.01.28 |
[백준] 10815번:숫자 카드 (python 파이썬) (0) | 2021.01.28 |
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- SSAFY
- SWEA
- 프로그래머스 자바
- 백준 17144
- 메뉴리뉴얼 풀이
- 프로그래머스 파이썬
- swea 1240
- 삼성청년SW아카데미
- 1240 자바
- 3996 자바
- 프로그래머스
- 프로그래머스 더 맵게
- swea 타일링 자바
- swea 타일링
- 더 맵게
- swea 1240 자바
- ubuntu
- 백준
- swea 4070 타일링
- 파이썬
- 백준파이썬
- 우분투
- union-find
- 파이썬 풀이
- 백준 dp 문제
- 1699 자바
- poker swea
- 타일링 자바
- 백준 풀이
- yoloV3
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
글 보관함