본문 바로가기

분류 전체보기

(62)
[C++] 다형성과 오버로딩, 오버라이딩 다형성이란부모객체를 선언하고 자식객체로 초기화해서 런타임시 다양한 실제타입에 따라 다른 메서드를 사용할 수 있게 하는 동적 다형성과 한 스코프 내에서 함수를 선언할 때 같은 이름의 함수를 다른 타입의 파라미터로 정의하는 정적 다형성이있다.오버라이딩과 가상함수 virtual오버라이딩은 부모의 객체의 메서드를 자식 객체가 재정의 할 수 있게 하는 기능이다.그런데 다형성을 지원하는 C++에서 부모 개체로 선언된 자식 객체의 경우 특정 오버러이딩 메소드를 호출하면 이 메소드는 부모의 메소드를 불러올까 아니면 자식의 메소드를 불러올까?Virtual은 여기서 작동한다. Virtual을 함수 앞에 선언하면 함수를 선언할 때 자식 클래스의 메소드가 이 메소드를 덮어 쓸 수 있게 해준다.그런데 무슨원리로?이런 기능을 들..
[Leetcode 1052번 문제] 1052. Grumpy Bookstore Owner 문제 상황There is a bookstore owner that has a store open for n minutes. Every minute, some number of customers enter the store. You are given an integer array customers of length n where customers[i] is the number of the customer that enters the store at the start of the ith minute and all those customers leave after the end of that minute.On some minutes, the bookstore owner is grumpy. You are giv..
[네트워크] TCP, UDP 프로토콜 들어가며지난번에 IP 관련 공부를 했다. 그럼 당연히 이제 전송 계층 공부를 할 차례 잠깐 들어가기전에 지난번 IP 패킷의 정보를 담고있는 IP헤더의 구조와 크기를 정리해봤다전송 계층 공부전송계층을 공부하게되면 누구나 TCP, UDP라는걸 배우게된다. 일단 둘은 판이하게 다르고 실제로 응용프로그램 계층의 프로토콜들도 UDP냐 TCP냐에 따라서 목적과 용도가 다르다는걸 알 수 있었다. 사실상 우리가 인터넷 계층에서 사용하는 프로토콜은 IP가 대부분이라는걸 생각하면 ( 실제로 UDP와 TCP도 둘다 IP프로토콜을 사용한다고한다) 둘의 차이점이나 구성을 명확히 파악해야 할 것 같다.일단 책에서 배운것을 기반으로 둘의 차이를 생각해보면TCP연결성이다데이터들의 도착순서가 보장된다.가상회선 방식을 사용한다위의 이유..
[Leetcode 826번 문제] 826. Most Profit Assigning Work 문제 상황You have n jobs and m workers. You are given three arrays: difficulty, profit, and worker where:difficulty[i] and profit[i] are the difficulty and the profit of the ith job, andworker[j] is the ability of jth worker (i.e., the jth worker can only complete a job with difficulty at most worker[j]).Every worker can be assigned at most one job, but one job can be completed multiple times.For ex..
[Leetcode 633번 문제] 633. Sum of Square Numbers 문제 상황Given a non-negative integer c, decide whether there're two integers a and b such that a2 + b2 = c.c가 두개의 제곱수의 합으로 나타낼 수 있는지 확인하라는 문제입력정수 c출력제곱수의 합으로 나타낼 수 있는지에 대한 불값과정일단 c는 제곱수의 합이기 때문에 특정c - 특정 제곱수가 제곱수인지 확인하는 문제여도됨.그럼 모든 제곱수들을 저장해놓고 그냥 해시하면 되지 않을까?대충 2 ** 16번의 계산만 하면 돼서 문제 없다고 생각했다.알고리즘 개요도 알고리즘class Solution { typedef long long ll; unordered_map container;public: bool judgeSqua..
[Leetcode 330번 문제] 330. Patching Array 문제 상황Given a sorted integer array nums and an integer n, add/patch elements to the array such that any number in the range [1, n] inclusive can be formed by the sum of some elements in the array.Return the minimum number of patches required.nums의 정렬 배열이 있고 n이라는 정수를 추가할 거임, 요소를 add/patch 한다, 1부터 n까지의 모든 수를 배열안의 수로 제작할 수 있게 되는 최소의 변형 수를 구하는 문제입력1 1 nums is sorted in ascending order.1 출력배열의 조합으로 [1..
[네트워크] IP프로토콜 분석 들어가며네트워크 CS에는 신기한 녀석이 살고있다. 바로 계층구조OSI 7단계와 TCP/IP 4계층이라고도 하는 녀석들이다 얘네는 실제 프로젝트에서 경험할 일이 없는 녀석이다 보니 외워도 까먹고 외워도 까먹고 항상 그렇다. 그 멍청한 연쇄를 끊고자 실제 실습을 겸해서 네트워크 공부를 하려고한다.개념TCP/IP 계층과 OSI 7계층은 같은 개념이고 그중에서 ip 프로토콜은 인터넷 계층의 프로토콜의 일종이다. 그냥 추상적으로 프로토콜을 공부하기는 힘들어서 C++의 ip 프로토콜을 직접 담당하는 라이브러리를 읽으면서 분석해보자 ip 모듈의 분해struct ip {#ifdef _IP_VHL u_char ip_vhl; /* version > 2 */#else#if BYTE_ORD..
[OS] 멀티프로세스, 멀티스레딩 멀티스레드는 무엇인가?사실 멀티스레드는 컴퓨터 CPU가 한개의 프로세스에서 여러개의 작업을 동시에 하게 해주는 프로그래밍 언어의 기능이다.우리의 현재 컴퓨터들이 여러개의 코어를 지니고 있기 때문에 효율적이고 빠른 코드를 만들려면 멀티스레딩, 멀티 프로세싱에 대한 이해는 반드시 필요해보인다.그래서 나도 이번에 한번 공부해보자라는 생각을 하게됐다.멀티 프로세스와 멀티 스레딩의 차이멀티 스레드와 가장 헷갈리는 단어는 멀티 프로세슨데 CS적인 측면에서 둘은 이렇게 다르다.프로세스는 스레드보다 큰 단위다.프로세스는 프로그램 파일이 있을 때 실행하게 되면 메모리 위에 생성되는 프로그램의 인스턴스라고 할 수 있다.그리고 스레드는 프로세스에서 실행되는 어떤 코드의 흐름이다 한 프로세스는 적어도 한 개 이상의 스레드로 ..