
[프로그래머스] 고득정 Kit 정렬 - 가장 큰 수 #include #include #include using namespace std; bool comp(string a, string b) { int aNum = (int)(a[0]); int bNum = (int)(b[0]); if (aNum > bNum) return true; else if (aNum == bNum) { string AnB = a + b; string BnA = b + a; if (stoi(AnB) > stoi(BnA)) return true; else return false; } else return false; } string solution(vector numbers) { string answer = ..

[ 문제 ] 하드디스크는 한 번에 하나의 작업만 수행할 수 있습니다. 디스크 컨트롤러를 구현하는 방법은 여러 가지가 있습니다. 가장 일반적인 방법은 요청이 들어온 순서대로 처리하는 것입니다. 예를들어 - 0ms 시점에 3ms가 소요되는 A작업 요청 - 1ms 시점에 9ms가 소요되는 B작업 요청 - 2ms 시점에 6ms가 소요되는 C작업 요청 와 같은 요청이 들어왔습니다. 이를 그림으로 표현하면 아래와 같습니다. 한 번에 하나의 요청만을 수행할 수 있기 때문에 각각의 작업을 요청받은 순서대로 처리하면 다음과 같이 처리 됩니다. - A: 3ms 시점에 작업 완료 (요청에서 종료까지 : 3ms) - B: 1ms부터 대기하다가, 3ms 시점에 작업을 시작해서 12ms 시점에 작업 완료(요청에서 종료까지 : 1..

[프로그래머스] 고득점Kit 힙 - 더 맵게 #include #include #include using namespace std; int solution(vector scoville, int K) { int answer = 0; priority_queue pq_scoville; for(int i =0; i< scoville.size(); i++) { pq_scoville.push(scoville[i]); } while(true) { int first_scoville = pq_scoville.top(); pq_scoville.pop(); int second_scoville = pq_scoville.top(); pq_scoville.pop(); if(K 힙의 첫번째 문제! 우선순위 ..

[프로그래머스] 고득점Kit 스택/큐 - 주식가격 #include #include using namespace std; vector solution(vector prices) { vector answer(prices.size() ,0); for(int i=0; i prices[j]) j = prices.size(); answer[i]++; } } return answer; } 왜 스택/큐 문제에 있는지 모르겠던 문제... 일단 설명이 아주 불친절하다. 문제 파악하는데 60% 스택/큐 문제에 있길래 스택으로 풀려고 시도한게 38% 문제푸는 시간 2% 였던 아주 괴상한 문제. 스택/큐 로 풀지 않으면 효율성에라서도 걸려야 하지 않나? 했던 문제다. (조건만 체크해주면 절..

[프로그래머스] 고득점 Kit 스택/큐 - 다리를 지나는 트럭 #include #include #include using namespace std; int solution(int bridge_length, int weight, vector truck_weights) { int answer = 0; queue m_QReadyTruck; queue m_QMovingTruck; int curWeight = 0; for (int i=0; i< truck_weights.size(); i++) { m_QReadyTruck.push(make_pair(truck_weights[i], 0)); } while (!m_QReadyTruck.empty() || !m_QMovingTruck.empty(..

프로그래머스 level2 C++ 연습문제 "할인 행사" 문제 map 을 이용했다. 1. map을 한번 만들어두고 그 뒤로는 날짜가 지나서 세일하지 않는 물품은 맵에서 빼고, 날짜가 지나서 새롭게 세일하는 품목은 넣는식으로 map을 관리. map을 만드는 for문은 한번만 돌고 그 뒤로는 돌지 않는다. -> 시간 단축을 위함. 2. 내가 사고자 하는 물품의 개수가 세일하는 물품의 개수보다 많으면 그 일자는 넘어감. 3. 세일하는 물품의 가지수가 원하는 물건의 가지수와 동일하거나 많으면 compMapMap 함수를 돈다. 이 함수는 sale하는 map을 iterator로 순회하면서 사고자하는 물건의 개수를 비교한다. (지금 생각해보니 세일 품목의 개수만 많고 찾는 물건이 없을수도 있다.. 그 예외처리도 한줄 ..

C와 C++의 가장 큰 차이는 C는 절차 지향 언어이고 C++은 객체 지향 언어라는 점이다. C에서 C++으로 넘어오면서 절차 지향에서 (구조체) -> 객체 지향 (클래스)가 되었다는 점이다. 이렇게 객체지향 언어가 되면서 가장큰 4가지 특징이 생겼다. 1. 캡슐화 (은닉성) 2. 상속 3. 다형성 4. 추상화 이다. 자주 보이는 접근제한 지정자 3개 - public(완전 공개), private(숨기기), protected(상속) 세 가지도 생겼다. 은닉화는 접근제한 지정자로 간단하게 표현 가능하다. 두번째인 상속은 무엇일까. 말 그대로 상속 받는 것이다. 기능을 받아오겠다는 뜻인데 이를 이용하면 똑같은 부분을 굳~~이 구현하지 않아도 된다. child가 parent를 상속받았다고 가정해보자. class..
기습 문제! 10 = 11; 이 가능할까? 맞추고 틀리고 할것도 없다. 그냥 불가능한 식이다. 이런 10과 11 등 상수를 r-value 라고 부르고 int a=0; 같이 변할수 있는 변수 a를 l-value 라고 부른다. 여기서 왜 r/l - value를 언급할까? 오늘 복습할 const와 레퍼런스가 이에 해당하기 때문이다. 먼저 const는 무었일까. const는 상수화를 시켜주는 장치이다. const int a =0; 이런 식으로 사용한다. 이렇게 상수화를 시켜주면 a의 값은 상수화, 즉 고정이 되어 수정이 불가능하다. (이것도 뭐 주소로 접근해서 요리조리 뭔갈 하면 수정가능하다.. int* pInt = nullptr; pInt = (int*)&a; *pInt = 300; 을 이용해서 pInt에 a..
C와 C++의 가장 강력한 점이 무엇일까. 포인터이다. 왜? 이 질문을 계속 생각 하면서 복습을 진행해보자. 포인터는 무었일까. 나는 4년제 컴퓨터 전공을 했었고 그래서 포인터의 존재는 알고 있었다. 주소를 건네주는것 아닌가. 근데 이게 더블 포인터니 뭐니 하면서 가면 이제 복잡해진다. 포인터는 다음과 같이 선언한다. int* pInt = nullptr; (초기화는 알아서) 그리고 다음과 같이 사용한다. int i = 100; int* pInt = &i; cout

기본적으로 C++은 4가지 변수가 있다. 1. 지역 변수 2. 전역 변수 3. 정적 변수 4. 외부 변수 로 이루어 져 있다. 흔히 함수 안에 있는 변수, 그러니까 Stack 영역을 사용하면서 함수가 호출되면 생성되었다가 함수가 지워지면 똑같이 지워지는 변수를 1. 지역 변수 라고 부른다. 그럼 Stack 영역은 무었이냐..! 라고 궁금해 할 수도 있다. 물론 나도 학교 다닐 때 까지만 해도 Stakc/Data 영역을 제대로 구분하지 못했다. 왜 구분을 해야하는지 알려주는 사람도 없어서 더 그런것 같다. 영역에 관한 내용은 변수를 한번 다 짚고 난 뒤 보도록 하자. 위 사진에서 Test() 안에 있는 test1 과 test2 는 Test() 함수 안에서만 유효하다. main에서 test1과 test2 를..
- Total
- Today
- Yesterday
- greedy
- 개인공부
- Ue
- 해시
- 고득점kit
- FPS
- 탐욕법
- C++
- 정렬
- 고득점 Kit
- 완전탐색
- 데디케이티드
- DFS
- sort
- level3
- Heap
- BFS
- 누적합
- 디자인 패턴
- 너비우선탐색
- 프로그래머스
- UE5
- LV2
- IMGUI
- 채팅서버
- 힙
- 스택/큐
- LV3
- 재귀
- Unreal 5.1
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |