분류 전체보기
[3] 이중 우선순위 큐
삭제 추가가 용이한 이중 연결 리스트를 사용했다. #include #include #include #include using namespace std; vector solution(vector operations) { vector answer; list bl, sl; for (const auto& item : operations) { string str = item; str.erase(remove(str.begin(), str.end(), ' '), str.end()); if (str[0] == 'I') { string tmpStr = ""; for (int i = 1; i < str.size(); i++) tmpStr += str[i]; bl.push_back(stoi(tmpStr)); bl.sort(..
[3] 숫자 게임
#include #include #include using namespace std; int solution(vector A, vector B) { int answer = 0; sort(A.begin(),A.end()); sort(B.begin(),B.end()); int idxA=A.size()-1,idxB=B.size()-1; while(idxA >= 0) { int valA=A[idxA],valB=B[idxB]; if(valB > valA) { answer++; idxB--; } idxA--; } return answer; }
![](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMLC7F%2FbtrNyEonA1z%2FgKiiCI5k8Yka0J4Spdoep0%2Fimg.png)
[3] 가장 먼 노드
이 문제에는 함정이 존재한다 따라서 SIZE를 20001로 지정한다. #include #include #include #include using namespace std; #define SIZE 20001 vector vGraph[SIZE]; vector vCount(SIZE); bool vis[SIZE]; void DFS(int start) { queue q; q.push(start); vis[start] = true; while (!q.empty()) { auto front = q.front(); q.pop(); for (int i = 0; i < vGraph[front].size(); i++) { auto val = vGraph[front][i]; if (!vis[val]) { vis[val] = ..
[3] 섬 연결하기
#include #include #include using namespace std; vector vIsland(100); bool Cmp(vector a, vector b) { return a[2] < b[2]; } int FindParent(int idx) { if (vIsland[idx] != idx) vIsland[idx] = FindParent(vIsland[idx]); return vIsland[idx]; } int solution(int n, vector costs) { int answer = 0; sort(costs.begin(), costs.end(), Cmp); for (int i = 0; i < n; i++) vIsland[i] = i; for (int i = 0; i < costs...
[Unreal] UI를 마우스 위치에 따라가게 하기
CanvasPanel 밑으로 가있기 때문에 Canvas Panel Slot이 존재한다 여기서 위치를 수정해서 이동시킬 것이다. finalPos 변수는 달라질 수 있음. 마우스의 위치는 현재 뷰포트 기준으로 가져온다 라이브러리 참고, PlayerController에서 주어지는 마우스 위치는 월드 기준이다. FVector2D mousePos = UWidgetLayoutLibrary::GetMousePositionOnViewport(GetWorld()); FVector2D viewportSize = UWidgetLayoutLibrary::GetViewportSize(GetWorld()); FVector2D finalPos{ mousePos.X + 38.5f,mousePos.Y + 0.5f }; if (auto..
[3] 단어 변환
#include #include #include #include using namespace std; #define MAX 50 vector vWord; string targ = ""; bool vis[MAX + 1]; int ans = INT_MAX; void DFS(string begin, int depth) { if (targ == begin) { ans = min(ans, depth); return; } for (int i = 0; i < vWord.size(); i++) { int cnt = 0; for (int j = 0; j < vWord[i].size(); j++) { if (begin[j] != vWord[i][j]) cnt++; if (cnt == 2) break; } if (cnt =..
[3] 야근 지수
#include #include #include using namespace std; long long solution(int n, vector works) { priority_queue pq(works.begin(), works.end()); for (int i = 0; i 0) { int tmp = pq.top(); pq.pop(); pq.push(tmp - 1); } } long long ans = 0; while (!pq.empty()) { ans += pow(pq.top(), 2); pq.pop(); } return ans; }
[골5] 2493 - 탑
#include #include #define y first #define x second using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL), cout.tie(NULL); int n; cin >> n; stack s; for (int i = 1; i > h; while (!s.empty()) { if (s.top().x > h) { cout
[Unreal] 위젯 관련 함수 오버라이딩
// 위젯이 뷰포트에 붙여질때 호출. 초기화. virtual void NativeConstruct() // 마우스 드래그 시작 dragBegin virtual void NativeOnDragDetected(const FGeometry& InGeometry, const FPointerEvent& InMouseEvent, UDragDropOperation*& OutOperation) // 마우스 드래그 취소 dragCancel virtual void NativeOnDragCancelled(const FDragDropEvent& InDragDropEvent, UDragDropOperation* InOperation) // 마우스 드래그로 들어올 때 virtual void NativeOnDragEnter(con..
C extern (변수 / 함수 외부 선언)
const와 typedef는 기본적으로 내부 링크로 처리되고 여기서 extern을 붙이면 외부 링크가 적용된다. 어떤 이름을 extern으로 지정하면 컴파일러는 이를 정의가 아닌 선언문으로 처리한다. 변수를 extern으로 지정하면 컴파일러는 그 변수에 대해 메모리를 할당하지 않는다 따라서 그 변수를 정의하는 문장을 따로 작성해야 한다. /* AnotherFile.cpp */ extern int x; int x{ 3 }; extern으로 선언하는 동시에 초기화가 가능하다. /* AnotherFile.cpp */ extern int x = { 3 }; extern을 붙이지 않아도 x는 기본적으로 외부 링크로 처리되기 때문에 생략 해도 된다. extern이 반드시 필요한 경우는 다른 소스 파일에서 x에 접근..