반응형

두 포인터 5

[백준 10025] 게으른 백곰 C++

문제 백준 10025 게으른 백곰 C++ 10025번: 게으른 백곰 첫 줄에 정수 N과 K가 들어온다. 둘째 줄부터 N째 줄까지, 공백을 사이에 두고 각 양동이의 얼음의 양을 나타내는 gi와 양동이의 좌표를 나타내는 xi가 주어진다. www.acmicpc.net 풀이 일반적인 두 포인터 문제다. 처음부터 마지막까지, 양동이의 양을 더하고 빼주면서 최대합을 구한다. 범위 계산이 귀찮았는데, 정확하게 계산해 범위 초과 이슈가 나지 않도록 유의한다. 소스 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 ..

알고리즘/백준 2023.02.23

[백준 2473] 세 용액 C++

문제 백준 2473 세 용액 C++ 2473번: 세 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 3 이상 5,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 www.acmicpc.net 풀이 용액문제 (https://gamedoridori.tistory.com/238)의 심화형이다. 오름차순으로 용액이 정렬되어있지 않으므로 먼저 정렬을 해준다. 그리고 각각의 용액에 대해, 그 용액과 합의 절댓값이 최소가 되는 두 용액을 두 포인터로 찾아준다. 여담으로 용액과 두 용액 문제는 입력값이 -10억~10억이라 int 자료형으로도 문제가 없었지만, 세 용액 문제는 int 자료형을 사용할 시에 ab..

알고리즘/백준 2023.02.20

[백준 2467] 용액 C++

문제 백준 2467 용액 C++ 2467번: 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하의 정수이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 오름차순으로 입력되며, 이 수들은 모두 - www.acmicpc.net 풀이 일반적인 두 포인터 문제이다. 앞 뒤에서 용액을 확인한 뒤, 주어진 조건에 따라 start와 end를 이동시켜주면 된다. 소스 코드 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 #include #in..

알고리즘/백준 2023.02.19

[백준 2470] 두 용액 C++

문제 백준 2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 풀이 두 포인터를 사용합니다. 먼저 입력을 받아 오름차순으로 정렬합니다. 합이 0에 가까워져야 하므로, 합이 양수일 때는 right를 왼쪽으로 옮겨 합을 감소시키고 합이 음수일 때는 left를 오른쪽으로 이동시켜 합을 증가시킵니다. 합의 절댓값이 최솟값보다 작다면 갱신해주고 target에 저장합니다. 소스 코드 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 2..

알고리즘/백준 2021.09.25
반응형