분류 전체보기

    [C] main()과 return 사용 이유, 설명

    C 프로그램 동작 방식C 프로그램은 main() 이라는 함수가 운영체제(OS) 에서 호출되면서 시작되고, 그 main 함수가 호출되면 main 이름으로 정의된 block으로 진입하여, bloc 내의 명령문들을 순서대로 실행하게 된다. User는 사용자다. Application을 c 프로그램이라고 생각해보자.프로그램은 '함수의 집합체'이니 예를 들어서 프로그램도 함수라고 가정한다면, 그 함수를 호출하는 주체는 OS이며, 결국 거대한 함수이다. O/S가 프로그램을 실행한다는 것은 특정 실행 파일에 존재하는 'main' 함수를 호출하는 것이다. [그림 1]에서 볼 수 있는 call main() 위의 [그림1]의 Application 부분의 오른쪽 화살표를 보면, C 언어 코드가 적혀있다. 지금 봐야하는 lin..

    정규화 수행과정 #도부이결다조

    - 1차 정규화: 원자값 아닌 도메인 분해(도)- 2차 정규화: 부분 함수 종속 제거(부)- 3차 정규화: 이행 함수 종속 제거(이)- 보이스-코드 정규화: 결정자가 후보키가 아닌 것 제거(결)- 4차 정규화: 다치 종속 제거(다)- 5차 정규화: 조인 종속 제거(조)1차 정규화- 하나의 컬럼에 원자값을 갖도록 조정2차 정규화- 부분 함수 종속 제거- 기본키의 일부가 다른 컬럼과 종속3차 정규화- 이행 함수 종속- 물론 학번->학부->등록금을 거치지 않고도, 등록금은 학부에 종속된다(학번에을 알면 해당 학생의 등록금을 무조건 알 수 있기 때문이다.) 하지만 의미적으로 등록금은 학부에 종속적으로 결정되는 것이 맞다. 따라서 이를 분리해 주어야 하는 것이다.보이스-코드 정규화- 결정자가 후보키가 아닌것 제거..

    [LeetCode] 45. Jump Game II

    auto size = nums.size();if (size == 1) return 0;int ans = 1, end = nums[0], far = nums[0];for (int i = 0; i = size - 1) break; }}return ans;

    [LeetCode] 55. Jump Game

    bool canJump(vector& nums) { int idx = nums.size() - 1; if (idx == 0) return true; for (int i = idx - 1; i >= 0; i--) { if (nums[i] + i >= idx) idx = i; } return idx == 0;}

    [Python] 문자열 관련 함수 총 정리

    type(변수) : 문자열(string) 문자열 표현법 4종 : '문자열', "문자열", ''''문자열''', """문자열""" 이스케이프 코드 1 (\ + 문자) : \n, \t, \\, \', \"\n : 줄바꿈\t : 탭간격\\, \', \" : 문자 표현 이스케이프 코드 2 (\ + 문자) : \b, \r\b : 백스페이스\r : 캐리지 리턴\f : 폼피드\v : 수직 탭\000: 널 문자열 연산자 : + , *문자열 + 문자열 : 문자열 간 연결문자열 * 정수 : 정수만큼 문자열 반복 자료형 변환 : strstr(값) : 값(실수, 정수, bool 등)을 문자열로 변환함 문자열 인덱싱 & 슬라이싱인덱싱 : 변수[인덱스]슬라이싱 : 변수[시작인덱스 : 종료인덱스] = a[x : x+3] = a[x..

    힙 (Heap) / 이진 힙 (Binary Heap)

    정의힙 (heap)은 이진 힙 (binary heap)이라고도 하며, 최댓 값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전 이진트리(complete binary tree)를 기본으로 한 자료구조다. 힙은 다음과 같은 속성을 가지고 있다.완전 이진트리(Complete Binary Tree) 이다.부모노드의 키값과 자식노드의 키값 사이에는 대소관계가 성립한다.키값 대소관계는 오로지 부모자식 간에만 성립되며 형제사이에는 대소관계가 정해지지 않음.힙의 종류1. 최대 힙 (Max Heap)부모 키값이 자식노드 키값보다 큰 힙Key(parent) ≥ Key(child)가장 큰 값이 루트노드에 있음2. 최소 힙 (Min Heap)부모 키값이 자식노드 키값보다 작은 힙Key(parent) ≤ Key(ch..

    우선 순위 큐 - Priority Queue

    속성1. 모든 항목에는 우선 순위가 있다2. 우선 순위가 높은 요소는 우선 순위가 낮은 요소보다 먼저 queue에서 제외된다.3. 두 요소의 우선 순위가 같으면 queue의 순서에 따라 제공된다. 4 → 8 → 2 순으로 데이터가 들어간다고 했을 때 큐와 우선순위 큐의 처리 순서는 다음과 같다.(여기서 높은 값이 높은 우선순위를 갖는다고 가정.)input : 4 → 8 → 2큐 : 4 → 8 → 2우선순위 큐 : 8 → 4 → 2기본 동작enqueue()- queue에 새 요소를 삽입.dequeue() - queue에서 최대 우선 순위 요소를 삭제하고 그 값을 반환.peek() - queue에서 최대 우선순위 요소를 반환.구현  힙 방식이 최악에 경우라도 O(logN)을 보장하기 때문에 일반적으로 힙을 ..

    [LeetCode] 136. Single Number

    로직은 단순하다map에 파라미터로 넘어오는 nums의 개수를 파악하고이후 새로운 벡터를 초기화한 후 오름차순 정렬using IntPair = pair;class Solution{public: int singleNumber(vector& nums) { map m; for (auto& item : nums) m[item]++; vector v(m.begin(), m.end()); sort(v.begin(), v.end(), [&](const IntPair& left, const IntPair& right) -> bool { return left.second  xor 방식int singleNumber(vector& nums) { int ans=0; for(auto& it..

    [LeetCode] 344 - Reverse String

    class Solution{public: void reverseString(vector& s) { int left = 0, right = s.size() - 1; while (left

    [실3] 1002 - 터렛

    #include #include #include #include #include using namespace std;int main(){ int t; cin >> t; while (t--) { int x1, y1, r1, x2, y2, r2; cin >> x1 >> y1 >> r1 >> x2 >> y2 >> r2; double d = sqrt(pow(x1 - x2, 2) + pow(y1 - y2, 2)); double sub = r1 > r2 ? r1 - r2 : r2 - r1; int sum = r1 + r2; if (d == 0 && r1 == r2) cout sub && d