
2295 - 세 수의 합 (Java)
·
백준
문제https://www.acmicpc.net/problem/2295 풀이알고보면 참 단순한 문제다. 우리는 x + y + z = k 라는 공식을 활용해서 답을 찾아야 하는데, 이 표현은 x + y = k - z 로도 나타낼 수 있다는 점을 알아야 한다. x + y + z 의 경우의 수를 모두 구할려면 O(N^3) 이 걸릴 테지만 이를 조금 비틀어 x + y = k - z 를 활용하면 양쪽의 식들 값을 구하기 위해서 O(N^2) 의 시간에 풀이할 수 있다. x + y 의 값들을 set 에 저장한다음, k - z 값이 set에 있는지 확인하면 된다. 이 때 k 값이 가장 큰 값을 찾고 있기 때문에 배열을 오름차순으로 정렬해준다음,가장 뒤에서부터 k 값을 세팅해서 탐색을 시작하면 된다. k 값을 큰 값..