본문 바로가기
공부,일/코딩테스트

tow sum

by fromnothing1 2021. 10. 24.

https://leetcode.com/problems/two-sum/submissions/

 

Two Sum - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

 

#include<iostream>
#include <string>
#include <vector>
#include<algorithm>



using namespace std;


class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target)
    {
        vector<int> Tnums(nums);

        sort(nums.begin(), nums.end());
        vector<int> result;

        int lidx = 0;
        int ridx = nums.size() - 1;



        for (size_t i = 0; i < nums.size(); i++)
        {
            if (lidx == ridx)
            {
                result.push_back(-1);
            }
            else if (nums[lidx] + nums[ridx] < target)
            {
                lidx++;
            }
            else if (nums[lidx] + nums[ridx] > target)
            {
                ridx--;
            }
            else if (nums[lidx] + nums[ridx] == target)
            {
                result.push_back(nums[lidx]);
                result.push_back(nums[ridx]);

                break;
            }
        }

        if (find(Tnums.begin(), Tnums.end(), result[0]) == find(Tnums.begin(), Tnums.end(), result[1]))
        {
            auto it01 = find(Tnums.begin(), Tnums.end(), result[0]);
            auto it02 = next(it01);
            it02 = find(it02, Tnums.end(), result[0]);


            result[0] = distance(Tnums.begin(), it01);
            result[1] = distance(Tnums.begin(), it02);
        }
        else
        {
            result[0] = distance(Tnums.begin(), find(Tnums.begin(), Tnums.end(), result[0]));
            result[1] = distance(Tnums.begin(), find(Tnums.begin(), Tnums.end(), result[1]));
        }
        return result;

    }
};


int main()
{
    Solution a;    
    vector<int> b = { 3,3 };



    int target = 6;
    vector<int> d = a.twoSum(b,target );





    //for (size_t i = 0; i < d.size(); i++)
    //{
    //    cout << d[i] << endl;
    //}

    return 0;
}

 

 

'공부,일 > 코딩테스트' 카테고리의 다른 글

탐욕법  (0) 2021.11.04
전화번호 목록  (0) 2021.10.24
코딩 테스트 사이트 모음  (0) 2021.10.18
1 만들기(Dynamic Programming )  (0) 2021.10.17
카카오톡 신입 공채  (0) 2021.08.20

댓글