Written

코딩 테스트 스터디 기록 _ 1 본문

알고리즘 문제풀이

코딩 테스트 스터디 기록 _ 1

steeringhead 2023. 1. 12. 21:17

제로베이스 프론트엔드 10기 수강생들 내에서

코딩 테스트 스터디를 따로 진행하면서 공부한 것들의 내용을 정리하고있습니다.

 

leetcode 9번 문제 Palindrome Number 풀이입니다. 

 

기존의 x를 거꾸로해서 벡터에 넣고, 1번 인덱스의 값과 제일 뒤의 인덱스 값을 비교하면서 앞에서는 하나씩 늘리고

뒤에서는 하나씩 줄이면서 대칭이기 때문에 size를 2로 나누어 절반만 확인해서 답을 구해봤습니다. 한번이라도 다르면 

규칙에 안맞기 때문에 바로 return false로 함수를 끝냈습니다.

class Solution {
public:
    bool isPalindrome(int x) {
        vector<int> res;
        if ( x < 0)
            return false;
        while(true)
        {
            int a1 = x / 10;
            int a2 = x % 10;
            res.push_back(a2);
            x = a1;
            if (a1==0)
            {
                break;
            }
        }
        int resCnt = res.size() / 2;

        for (int i=0; i<resCnt; i++)
        {
            if (res[i] != res[res.size()-1-i])
                return false;
        }

        return true;

    }

};

 

leetcode 1번 문제 Two Sum 풀이 입니다.

 

이중 포문으로 구현했습니다. 첫번째 인덱스의 숫자부터 시작해서 뒤의 숫자들을 다 더해보고 target과 일치하면

그때의 인덱스 번호를 result 벡터에 추가해서 마지막에 reutrn 하고 있습니다.

class Solution {
public:
    vector<int> twoSum(vector<int>& nums, int target) {
        vector<int> result;
        for (int i=0; i<nums.size(); i++)
        {
            int a1 = nums[i];
            for (int j=i+1; j<nums.size(); j++)
            {
                int a2 = nums[j];
                if (a1 + a2 == target)
                {
                    result.push_back(i);
                    result.push_back(j);
                    
                }
                
            }
        }
        return result;
    }
};
Comments