본문 바로가기

ALGORITHM

(45)
[c && swift/LeetCode] Reverse Integer 1. c version 4ms/ 5.5MB 왜 이렇게 오래 걸린거지 int reverse(int x){ long temp = 0; long value = x; if (x 2147483647 || temp < -2147483648) return 0; return temp; } 2. swift version swift는 long type이 그냥 Int이기 때문에 c보다 오버플로우 언더플로우에 유연하긴 함 c에서의 자료형 swift 에서의 자료형 signed..
[c/LeetCode] Add Two Numbers 1. 문제 (난이도 : medium) 2. 첫 번째 접근 아이디어 링크드 리스트를 돌면서 숫자로 가져와서 더하면 빠르게 될 것이라고 예상했음 그래서 while (temp != NULL) { val1 = val1 * 10 + temp->val; temp = temp->next; } 이렇게 돌면서 가져온 숫자를 거꾸로 만들어야 하니까 while (val1) { tmp1 = tmp1 * 10 + (val1 % 10); val1 = val1 / 10; } 이렇게 변수를 하나 더 설정해서 숫자로 만드는 작업을 했음 당연히 타입은 unsigned long long으로 나름 오버플로우를 생각하긴 했음 그 뒤에 숫자를 더하고 while문을 돌면서 malloc해준거에 %10으로 나머지 숫자부터 찾아서 거꾸로 넣는 작업을..
[c/LeetCode] Two Sum 난 아직.. returnSize의 역할을 이해 못했다. 어짜피 문제에서 exactly one solution 이라고 강조까지 해놨으니, size는 당연히 2인데 굳이 저걸 포인터로 받아오는 이유는 뭐지? int* twoSum(int* nums, int numsSize, int target, int* returnSize){ int *result =(int *)malloc(sizeof(int) * 2); for(int i=0;i
[자료구조 알고리즘] 17413 자료구조 queue, stack 관련 백준 문제 풀이들. 중간고사 대비로 풀었던거 하나하나 정리할 차례다.. 귀찮아서 미뤄둔걸 학기가 다 끝난 이제서야 올린다. 1. 17413 요세푸스 순열 위키백과 정의에 따르면 요세푸스 순열은 다음과 같다. n과 k가 자연수이고, k > n >> m; //n사람 m순서 queue que; for (int i = 1; i
[17968/c++] Fire on Field 간단하게 요약하면 등차수열을 만들지 않는 최소의 양의 정수를 구하는 것이었다. 아오 근데 맨날 알고리즘 문제는 영어라서 나는 한참을 읽고...또 읽는다. 방학되면 영어 공부 제대로 해야지;;; 일단 값에 1을 대입하고 검사를 한다. 조건은 k > 0 , i − 2k ≥0, A[i] − A[i − k] ≠ A[i − k] − A[i − 2k]. 만약에 조건을 위배하면 즉 등차수열이 완성되면 1을 더해준다. 여기서 고려해야할 점은 1을 더한 후에 또 등차수열을 만들지는 않는지 검사를 해줘야한다. 이게 숫자가 작으면 상관없는데 8이상이 되면 문제가 생기기 때문임 그래서 어떻게 검사를 또 시킬까 하다가 걍 재귀함수 사용함 덕분에 4ms나 걸림 #include using namespace std; void che..