일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |
- SWEA
- BOJ
- knapsack Problem
- 8-Puzzle
- 프로세스 상태
- effective C++
- 3D RPG
- 프로그래머스
- binary search
- Euclidean
- two pointer
- solid 원칙
- PrefixSum
- trie
- LEVEL2
- dirtyflag pattern
- Silver
- programmers
- Zenject
- Unity
- BFS
- level1
- algorithm
- level3
- Modern C++
- stack
- Bronze
- Project
- Flyweight Pattern
- Gold
- Today
- Total
목록All (168)
Patrick's Devlog
Item 5 : C++가 은근슬쩍 만들어 호출해 버리는 함수들에 촉각을 세우자 C++에서 복사 생성자(copy constructor), 복사 대입 연산자(copy assignment operator), 소멸자(destructor)를 클래스 안에 직접 선언해 넣지 않으면 컴파일러가 저절로 선언해주도록 되어있다. 이때 컴파일러가 만드는 함수의 형태는 기본형이며 생성자조차 선언되어 있지 않으면 컴파일러가 선언해놓는다. 모두 public 멤버이며, inline 함수이다. class Empty{}; 위와같이 썼다면 다음과 같이 쓴것과 근본적으로 대동소이하다는 의미다. class Empty { public: Empty() { ... } // 기본생성자 Empty(const Empty& rhs) { ... } // ..
모든 C++ 표현에는 형식이 존재하며 value 범주에 속한다. value 범주는 표현 평가 중 임시 개체를 생성, 복사, 이동할 때 컴파일러가 따라야하는 규칙의 기초이다. C++17표준은 다음과 같이 식 값의 범주를 정의한다. 1. glvalue는 평가(evaluation)에서 개체, 비트필드 또는 함수의 ID(동일성)를 결정하는 표현 2. prvalue는 평가에서 객체나 비트 필드를 초기화하거나 표시되는 컨텍스트에 지정된대로 연산자의 피연산자 값을 계산하는 표현식 3. xvalue는 리소스를 재사용할 수 있는 개체 또는 비트 필드를 나타내는 glvalue 4. lvalue는 xvalue가 아닌 glvalue 5. rvalue는 prvalue 또는 xvalue lvalue에는 프로그램에서 액세스할 수 ..
1. 문제 개요 https://www.acmicpc.net/problem/1977 1977번: 완전제곱수 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 모두 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 예를 들어 M=60, N=100인 경우 60이상 100이하의 자연수 중 완 www.acmicpc.net 1-1. 설명 M과 N이 주어질 때 M이상 N이하의 자연수 중 완전제곱수인 것을 골라 그 합을 구하고 그 중 최솟값을 찾는 프로그램을 작성하시오. 1-2. 제한 사항 - 첫째줄에 M, 둘째 줄에 N이 주어짐 - M과 N은 10000이하의 자연수이며 M은 N보다 작거나 같음 - 만약 완전제곱수가 없을경우 첫째줄에 -1을 출력 2. 구현 2-1. 풀이 단순하게 N과 ..
개요 급히 Modern C++에 대해 공부해야할 일이 생겨 간단하게 인터넷을 통해서 숙지하고자 게시글을 정리한다. 자료는 TCP School에서 참고하여 정리하였으며, 좀 더 자세한 내용을 확인하고 싶으면 아래 참고 자료 링크에 들어가면 된다. 스마트 포인터? C++에서 new 키워드를 사용해 동적으로 할당받은 메모리는 반드시 delete를 사용해 해제해야 한다. C++에서는 메모리 누수로부터 프로그램 안전성을 보장하기 위해 스마트포인터를 제공한다. 스마트 포인터는 포인터처럼 동작하는 클래스 템플릿으로, 사용이 끝난 메모리를 자동으로 해제해준다. ◆ 동작 보통 new 키워드를 이용해 원시 포인터가 실제 메모리를 가리키도록 초기화한 후 원시 포인터를 스마트 포인터에 대입하여 사용한다. 정의된 스마트 포인터..
1. 문제 개요 https://www.acmicpc.net/problem/14582 14582번: 오늘도 졌다 첫 번째 줄에는 9개의 정수가 주어지는데, 오늘 경기에서 울림 제미니스가 1회 초, 2회 초, ..., 9회 초에 낸 득점이 주어진다. 두 번째 줄에도 9개의 정수가 주어지는데, 스타트링크 걸리버스가 1회 www.acmicpc.net 1-1. 설명 프로야구팀 울림 제미니스는 오늘도 졌다. 이에 열혈한 팬인 지수는 역전패를 했는지 구하고 싶어 이를 구하는 프로그램을 개발한다. 1-2. 제한 사항 - 첫 줄에는 9개의 정수가 주어지는데, 울림 제미니스가 1회 초, 2회초, ... ,9회 초에 낸 득점이 주어짐 - 두번째 줄에도 9개의 정수가 주어지는데, 울림의 상대팀인 스타트링크 걸리버스가 1회 초..
개요 시간이 지남에 따라 Modern C++가 발전하고 있는 상태이다. 내가 제대로 배운 언어는 일반 C++였으며, 조금 더 C++에 대해 깊게 공부하기 위해 간략하게 준비를 하고자 한다. 본 게시글은 계속해서 정리하는 글이 아닌, 개요만 살짝 맛보는 시간이다. Modern C++의 자세한 공부는 Effective C++의 공부가 끝나는대로 바로 진행할 예정이다. C++는 다른 언어보다 유연성이 높다. 높은 추상화(abstract)는 물론 회로 설계에도 사용가능하다. C++는 최적화된 표쥰 라이브러리를 제공한다. 이를 통해 낮은 하드웨어 기능에 액세스해 속도를 최대한으로 높이고 메모리 요구 사항을 최소화할 수 있다. 이처럼 C++은 다른 언어에 비해 메모리 접근성에 대해도 좋으며, 그만큼 좋은 성능 대비..

개요 조금씩 알고리즘 공부를 진행하고 있던 중에, DP에 대해 이미 공부를 했지만 아직 많이 빈약한 것 같아 유튜브를 통해 인강을 들은 후 다시 한 번 정리하려고 한다. 강의는 코드없는 프로그래밍님의 Dynamic Programming이다. 강의를 듣고싶다면 아래의 링크로 들어가면 들을 수 있다. https://www.youtube.com/watch?v=eJC2oetXaNk Dynamic Programming 다이나믹 프로그래밍은 세가지 조건이 충족되면 바로 적용이 가능하다 1. Problem이 더 작은 subproblem으로 쪼개질 때 2. 이런 subproblem들의 솔루션으로 더 큰 규모의 problem의 솔루션을 구할 수 있을 때 3. 이러한 subproblem들이 겹칠 때 -> memorizat..
1. 문제 개요 https://www.acmicpc.net/problem/2581 2581번: 소수 M이상 N이하의 자연수 중 소수인 것을 모두 찾아 첫째 줄에 그 합을, 둘째 줄에 그 중 최솟값을 출력한다. 단, M이상 N이하의 자연수 중 소수가 없을 경우는 첫째 줄에 -1을 출력한다. www.acmicpc.net 1-1. 설명 자연수 M과 N이 주어질 때 M이상 N 이하의 자연수 중 소수인 것을 모두 골라 이들 소수의 합과 최솟값을 찾는 프로그램을 작성한다. 1-2. 제한사항 - 입력의 첫째줄이 M, 둘째줄이 N 주어짐. - M과 N은 10,000이하의 자연수이며 M은 N보다 작거나 같음 - 자연수 중 소수를 찾아 첫째줄에 합을, 둘째줄에 최솟값을 출력 - M이상 N이하 자연수 중 소수가 없을 시 -..