쾌락없는 책임 (공부)
-
[Algorithm] 백준 5972 택배 배송 - C++, 다익스트라쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 3. 19. 11:31
5972번: 택배 배송 농부 현서는 농부 찬홍이에게 택배를 배달해줘야 합니다. 그리고 지금, 갈 준비를 하고 있습니다. 평화롭게 가려면 가는 길에 만나는 모든 소들에게 맛있는 여물을 줘야 합니다. 물론 현서는 www.acmicpc.net #include #include #include #include #include using namespace std; int n, m; int cows[50001]; vector edges[50001]; int main(){ // init ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // input cin >> n >> m; for(int i = 0; i > a >> b >> c; edges[a].push_back({..
-
[Effective C++] 4장(1) - 설계 및 선언쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 17. 13:35
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 18 : 인터페이스 설계는 제대로 쓰기엔 쉽게, 엉터리로 쓰기엔 어렵게 하자 C++에서는 함수, 클래스 템플릿 등 다 인터페이스로 이루어져 있다고 보면 되고, 사용자들을 위해서 이런 인터페이스를 잘 쓰기엔 쉽고 잘못된 경우는 경고해주는 인터페이스를 만들어주고 싶습니다. 예를 들어 날짜를 나타내는 클래스가 있다고 합시다. class Date{ public: Date(int month, int day, int year); ... }; 여기서는 매개변수 순서가 잘못될 여지, 어이없는 수가 들어갈 경우가 있습니다. 그리고 이때 새로운 타입을 들여와 인..
-
[Algorithm] 프로그래머스 행렬 테두리 회전 - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 3. 17. 11:38
코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr #include #include #include using namespace std; int matrix[101][101]; int SpinMatrix(pair leftUp, pair rightDown){ int minResult = 10000; int temp = matrix[leftUp.first][leftUp.second]; minResult = min(temp, minResult); int vertical = rightDown.first..
-
[Effective C++] 3장(2) - 자원 관리쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 13. 17:11
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 16 : new 및 delete를 사용할 때는 형태를 반드시 맞추자! std::string *stringArray = new strd::string[100]; ... delete stringArray; 딱 보면 이상한 코드입니다. 이러면 이후 99개의 string들이 delete될 수 없습니다. new 키워드로 동적 할당을 하면 아래 메모리 할당, 할당된 메모리에 대해 한개 이상의 생성자가 호출 됩니다. delete 표현식에서는 다른 2가지 내부 동작을 하게 됩니다. 할당된 메모리에 대해 한 개 이상의 소멸자 호출, 메모리 해제. 여기서 삭제되..
-
[Algorithm] 백준 2146 다리 만들기 - C++, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 3. 13. 14:55
2146번: 다리 만들기 여러 섬으로 이루어진 나라가 있다. 이 나라의 대통령은 섬을 잇는 다리를 만들겠다는 공약으로 인기몰이를 해 당선될 수 있었다. 하지만 막상 대통령에 취임하자, 다리를 놓는다는 것이 아깝다 www.acmicpc.net #include #include #include #include using namespace std; int n, answer = 999999999; int map[101][101]; bool visit[101][101]; int moveX[] = { 0, 0, 1, -1 }; int moveY[] = { 1, -1, 0, 0 }; int IsOut(int y, int x){ if(y = n || x >= n) return true;..
-
[Effective C++] 3장(1) - 자원 관리쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 11. 14:50
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 13 : 자원 관리에는 객체가 그만! void f(){ Investment *p = createInvestment(); ... delete p; } 팩토리 함수에서 객체를 만들어 사용한 뒤 delete를 하는 모습인데 만일 delete가 실행되지 않는다면 어떨까요? 위 ... 에서 예외가 있다던가 continue가 있었다던가 등등 여러 이유에서 말이죠. 프로그램을 만들때 이런 사항들에 잘 대응해야겠지만 유지보수 측면에서 이런 상황들을 배제 할 필요가 있습니다. 그래서 나온 방법이 자원을 객체에 넣고 그 자원 해제를 소멸자가 하게 하는 것입니다!..
-
[Effective C++] 2장(2) - 생성자, 소멸자 및 대입 연산자쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 3. 10. 13:38
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 9 : 객체 생성 및 소멸 과정 중에는 가상 함수를 호출하지 말자 이유는 2가지입니다. 호출 결과가 원하는대로 돌아가지 않을 것이고 돌아간다고 해도 이상할 것이기 때문이죠. class Transactino { public: Transaction(); virtual void LogTransaction() const = 0; ... }; Transaction::Transaction(){ ... LogTansaction(); } class BuyTransaction : public Transaction{ public: virtual void LogT..
-
[Algorithm] 백준 1976 여행가자 - C++, 분리집합쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 3. 9. 14:07
1976번: 여행 가자 동혁이는 친구들과 함께 여행을 가려고 한다. 한국에는 도시가 N개 있고 임의의 두 도시 사이에 길이 있을 수도, 없을 수도 있다. 동혁이의 여행 일정이 주어졌을 때, 이 여행 경로가 가능한 것인 www.acmicpc.net #include using namespace std; int n, m; int cityGroup[201]; int FindGroup(int x){ if(cityGroup[x] == x) return x; else return cityGroup[x] = FindGroup(cityGroup[x]); } void MergeGroup(int x, int y){ x = FindGroup(x); y = FindGroup(y); if(x == y) return; cityGr..