Compy's Blog
186 words
1 minutes
[BOJ] 좋다
2025-02-07

좋다

TimeLimitMemoryLimitConditionTAG
2s256MB1 ≤ N ≤ 2,000
abs(A_i) ≤ 1,000,000,000
Sort, Two Pointer

문제 자체가 전형적인 binary search를 하는거였고, 그냥 투 포인터로 자기 자신 예외처리 후 AC

ll을 unsigned로 해놔서 오류를 못 찾았었다..

정답 코드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
using ll = long long;
int n;
ll board[2001];

int main(){
    ios_base::sync_with_stdio(0);
    cin.tie(0); cout.tie(0);
    
    cin >> n;
    for(int i = 0; i < n; i++){
        cin >> board[i];
    }
    
    sort(board, board+n);
    
    int result = 0;
    if(n <= 2) {
        cout << 0;
        return 0;
    }
    
    for(int i = 0; i < n; i++){
        
        int right = n-1 == i ? n-2 : n-1;
        int left = i == 0;
        
        while(left < right){
            ll current = board[left] + board[right];
            if(board[i] == current){
                result ++;

                break;
            }
            else if(board[i] < current){
                if(i == right-1) right--;
                right--;
            }else{
                if(i == left+1) left++;
                left++;
            }
        }
    }
    cout << result;
    
    
    return 0;
}
[BOJ] 좋다
https://compy07.github.io/Blog/posts/boj/1253/
Author
뒹굴뒹굴 이정훈 공부방
Published at
2025-02-07