넘치게 채우기

[LeetCode] 1346. Check If N and Its Double Exist 본문

PS/LeetCode

[LeetCode] 1346. Check If N and Its Double Exist

riveroverflow 2024. 12. 1. 10:58
728x90
반응형

https://leetcode.com/problems/check-if-n-and-its-double-exist/description/

leetcode - Check If N and Its Double Exist

문제 유형: 투 포인터

문제 난이도: Easy

 

문제

Given an array arr of integers, check if there exist two indices i and j such that :

  • i != j
  • 0 <= i, j < arr.length
  • arr[i] == 2 * arr[j]

서로 다른 두 인덱스 i, j에 대해서

arr[i] == arr[j] *2가 있으면 true를 반환하시오.

 

풀이

2중for문을 돌면서 서로 다른인덱스이고 2배관계인 쌍이있으면 true를, 아니면 false를 반환해준다.

단, 다른인덱스임을 고려를 반드시 해줘야하는데, 0인 경우는 같은 인덱스여도 2배관계이기 때문이다.

 

코드

C++

#pragma GCC optimize("O3", "unroll-loops");
static const int __ = [](){
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    return 0;
}();

class Solution {
public:
    bool checkIfExist(vector<int>& arr) {
        int n = arr.size();
        for(int i = 0; i < n; ++i) {
            for(int j = 0; j < n; ++j) {
                if(i != j && 2 * arr[i] == arr[j]) return true;
            }
        }

        return false;
    }
};
728x90
반응형