쾌락없는 책임 (공부)
-
[Algorithm] 프로그래머스 땅따먹기 - C++, DP쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 23. 17:31
코딩테스트 연습 - 땅따먹기 땅따먹기 게임을 하려고 합니다. 땅따먹기 게임의 땅(land)은 총 N행 4열로 이루어져 있고, 모든 칸에는 점수가 쓰여 있습니다. 1행부터 땅을 밟으며 한 행씩 내려올 때, 각 행의 4칸 중 한 칸만 밟 programmers.co.kr #include #include #include using namespace std; int solution(vector land) { int answer = 0; int totalSize = land.size()-1; for(unsigned i = 0; i < totalSize; i++){ int land0 = land[i][0]; int land1 = land[i][1]; int land2 = land[i][2]; int land3 = l..
-
[Algorithm] 프로그래머스 섬 연결하기 - C++, 크루스칼쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 23. 16:25
코딩테스트 연습 - 섬 연결하기 4 [[0,1,1],[0,2,2],[1,2,5],[1,3,1],[2,3,8]] 4 programmers.co.kr #include #include #include using namespace std; int parent[101]; pair edge[10001]; int findRoot(int x){ if(x == parent[x]) return x; return parent[x] = findRoot(parent[x]); } void Merge(int x, int y){ x = findRoot(x); y = findRoot(y); if(x == y) return; parent[x] = y; } int solution(int n, vector costs) { int answe..
-
[Algorithm] 프로그래머스 2 x n 타일링, C++, DP쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 23. 15:32
코딩테스트 연습 - 2 x n 타일링 가로 길이가 2이고 세로의 길이가 1인 직사각형모양의 타일이 있습니다. 이 직사각형 타일을 이용하여 세로의 길이가 2이고 가로의 길이가 n인 바닥을 가득 채우려고 합니다. 타일을 채울 때는 programmers.co.kr #include #include using namespace std; const int mod = 1000000007; int solution(int n) { int answer = 0; vector wayCount(n+1); wayCount[0] = 0; wayCount[1] = 1; wayCount[2] = 2; for(unsigned i = 3; i
-
[Algorithm] 프로그래머스 가장 먼 노드 - C++, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 23. 12:31
코딩테스트 연습 - 가장 먼 노드 6 [[3, 6], [4, 3], [3, 2], [1, 3], [1, 2], [2, 4], [5, 2]] 3 programmers.co.kr #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; int maxDistance = 0; vector distance(n+1); vector visit(n+1); for(unsigned i = 0; i = nextCost){ visit[nextPos] = true; distance[nextPos] = nextCost; q.push(make_pair(nextPos, nextCost)); } } ..
-
[Algorithm] 백준 16197 - 두 동전, C++, DFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 22. 18:38
16197번: 두 동전 N×M 크기의 보드와 4개의 버튼으로 이루어진 게임이 있다. 보드는 1×1크기의 정사각형 칸으로 나누어져 있고, 각각의 칸은 비어있거나, 벽이다. 두 개의 빈 칸에는 동전이 하나씩 놓여져 있고, www.acmicpc.net #include #include #include using namespace std; int boardH, boardW; char board[21][21]; int moveX[4] = {0, 0, 1, -1}; int moveY[4] = {1, -1, 0, 0}; vector coinPos; // height, weight int answer = 20; bool isCoinOut(const pair& coin){ if(coin.first < 0 || coin.s..
-
C++ pimpl과 관련한 이야기들쾌락없는 책임 (공부)/C++ 짜잘이 2022. 2. 16. 23:11
개요 C++에 대한 이해도를 더 높여보기 위해서 Effective C++을 읽던 도중 pimpl 구조라는 흥미로운 키워드를 보게 되었습니다. 구현부는 따로 저장하고 이 객체의 주소를 가리키는 포인터를 사용하겠다는 아이디어입니다. 딱 보기에 객체 간 연산을 할 때 도움이 되지 않을까 하는 생각이 들었는데 이것에 대해서 여기저기 알아보고 정리해본 것들을 적어보겠습니다. pimpl - pointer to inplementation 의 기본 형태 class widget { // public members private: struct impl; // 아래 사용을 위한 전방 선언 std::experimental::propagate_const pImpl; }; struct widget::impl { // 실제 구현 ..
-
[Effective C++] 1장 - C++에 왔으면 C++의 법을 따릅시다쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 2. 16. 20:15
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 1 : C++를 언어들의 연합체로 바라보는 안목은 필수 현대 C++은 발전을 거듭해서 다중 패러다임 프로그래밍 언어로 불리기도 합니다. 이는 진짜로 여러 언어로 이루어진 게 아니라 '관점'을 다양하게 보고 설계를 하자는 이야기입니다. - C 관점에서 C++ - 객체 지향 관점에서 C++ - 탬플린 관점에서 C++ - STL 관점에서 C++ 각 관점에 따라 설계 스타일이 달라지는데 C 관점에서는 값 전달 위주로, 객체지향 관점, 템플릿에서는 생성/소멸자로 상수 객체 참조자에 의한 전달(pass by reference to const)을 선호, S..
-
[Algorithm] 백준 14938 - 서강그라운드, C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 2. 10. 13:11
14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net #include #include #include #include #include using namespace std; int n, m, r; // 지역, 수색범위, 길의 수 int item_in_area[101]; int cost_from_start[101]; vector edges[101]; void Yeeun_Search(int start_pos){ // init array for(int i = 1; i cost_from_start[cur] + next_cost){..