목록전체 글 (179)
有希
Git에서 다른 사람의 코드를 분석하던 도중 Tick이 아닌 TickActor를 활용하는 것을 보았다. Unreal Engine4 4.27 documentation을 참고한 결과, TickActor함수는 해당 Actor의 Tick함수를 1프레임당 1번 호출해준다. 차이는 TickActor()가 Tick()을 호출해주는 것인데, 흐름 제어?에 쓰일것 같지만 그 외에 정확한 차이는 잘 모르겠다.
class Solution { vector ret; vector NumToLetters = {"", "", "abc", "def", "ghi", "jkl", "mno", "pqrs", "tuv", "wxyz"}; vector digitNumbers; public: vector letterCombinations(string digits) { if(digits.size() == 0) return vector(); //init ret.clear(); digitNumbers.clear(); //digits를 숫자로 변환하여 저장 for(int i=0; i
1. 정렬시키는게 가장 중요하다. 정렬시키면 중복된 값들을 확인하고 건너뛸 수 있기 때문 2. 먼저 값 하나를 고정시킨다. 그 후 나머지 2개의 숫자를 돌려가며 확인한다. 3. 0 이라면 넣고, 중복이 아닌 경우가 나올 때까지 j와 k를 이동하고 다시 확인한다. 4. 0보다 작다면 i=-5, j=-2, k=3 인 상황이므로 j를 늘려서 j+k값을 늘려야 하므로 j++, 0보다 크다면 k-- 해준다. class Solution { public: vector threeSum(vector& nums) { sort(nums.begin(), nums.end()); vector ret; if(nums.size() < 3) return ret; for(int i=0; i nums[i-1]) { int j = i+1;..
좌우를 시작으로 물양을 측정하며, 높이가 낮은 쪽을 밀면서 다시 물양을 측정한다. class Solution { public: int maxArea(vector& h) { int ret = -1, l=0, r=h.size()-1; while(r>l) { ret = max(ret, min(h[l], h[r])*(r-l)); if(h[l]>h[r]) r--; else l++; } return ret; } };
3으로만 나누어 떨어지면 Fizz, 5로만 나누어 떨어지면 Buzz, 3과5의 공배수면 FizzBuzz, 어느것으로도 나누어 떨어지지 않으면 idx를 vector에 담아 반환하는 문제 class Solution { public: vector fizzBuzz(int n) { vector ret; for(int i=1; i
map에 등장횟수 넣고, 다시 순회하며 등장횟수가 1인 녀석을 찾는다. class Solution { public: int firstUniqChar(string s) { unordered_map map; int ret=-1; for(auto i=0; i
Intersection은 교차로로 알고 있는데, 내가 생각하는 것과 다른 문제여서 애먹었다. 단순히, 서로 공동으로 가지고 있는 원소들을 중복허용으로 vector에 담아서 return하라는 문제이다 -_- class Solution { public: vector intersect(vector& nums1, vector& nums2) { vector ret; unordered_map map; for(int i=0; i
간단한 문제 class Solution { public: void reverseString(vector& s) { for(auto i=0; i
문제에서 주어지는 n의 범위가 음수도 있으므로 0이하는 모두 쳐낸다. 1은 모든 자연수들의 0승이므로 true 반환한다. 나누다 보면 1혹은 0이 나오는데, 3은 % 연산을 하면 0 1 2가 나온다. 계속 3으로 나눌 수 있는지 확인하고 3으로 나누다가 n이 1이 되면 while을 빠져나온다고 생각하면 된다. 만약 소인수 중 2가 섞여있었다면 %연산에 의해 걸러질 것이다. 5나 7같은 소인수들도 마찬가지로. class Solution { public: bool isPowerOfThree(int n) { if(n==1) return true; if(n1) { if(n%3!=0) return false; n/=3; } return true; } };
입력으로 들오는 vector는 무조건 값 1개가 누락되어 있다. 그래서 실제 길이는 nums.size()+1 이다. 그러므로, 정상 vector일 경우의 합은 size*(size+1)/2가 된다. vector의 값들을 다 빼주면 놓친 값이 나온다. class Solution { public: int missingNumber(vector& nums) { int size = nums.size(); int sum = size*(size+1) / 2; for(int i=0; i