Replies: 1 comment 2 replies
-
투 포인터 조지고 계시네염 ㅋㅋㅋㅋㅋ |
Beta Was this translation helpful? Give feedback.
2 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
-
이것도 역시 투포인터 문제였는데 주의해야할점이 몇가지 있다.
정렬을 하게 되면 왼쪽에는 음수가 오른쪽에는 양수가 정렬이 될 것이다.
만약 모두 음수거나 모두 양수이면 당연하게 s포인터를 증가시키면 덧셈의 결과가 커질 것이고,
e포인터를 감소시키면 결과가 감소할 것이다.
그러나 이 문제는 둘의 합을 abs()를 이용해서 절대값으로 비교해줘야 한다.
s가 그대로 e가 1이 작아지는 경우 합의 절대값 과 s가 1커지고 e가 그대로일 경우의 합의 절댓값을 비교해보기 전까지 뭐가 더 작은지 모른다.
따라서 조건문으로 비교해주는 부분을 넣어준뒤 우리는 절대값이 0에 가까운 즉 작을수록 우리가 구하고자 하는 정답에 가깝기 때문에 조건에 맞게 s랑 e를 증감 시켜주고 가장 작은 abs값이 나올때 마다 m에 넣어주고 동시에 ans 배열에 정답이 될 arr[s] 와 arr[e] 값도 넣어주자
최종적으로 while문이 끝나면 절대값의 합이 가장작은 arr[s] 와 arr[e]가 ans 배열에 남고 이를 출력하면 끝!
Beta Was this translation helpful? Give feedback.
All reactions