쾌락없는 책임 (공부)
-
[Effective C++] 5장(2) - 구현쾌락없는 책임 (공부)/Effetive C++ 요약본 2022. 5. 16. 17:49
본 카테고리는 프로텍 미디어의 '이펙티브 C++'을 보고 요약하는 카테고리입니다. 3판을 기준으로 하며 전체 내용이 아닌 간략한 내용만을 요약하고 있습니다. 항목 29 : 예외 안정성이 확보되는 그날 위해 싸우고 또 싸우자 이런 함수가 있다고 생각해 봅시다. void PrettyMenu::ChangeBackGround(std::istream& imgSrc) { lock(&mutex); delete bgImage; ++imageChanges; bgImage = new Image(imgSrc); unlock(&mutex); } 위 함수의 경우 예외 안정성에 있어서 최악의 함수가 되는 함수입니다. 일단 예외 안정성을 가지는 함수는 자원이 새지 않고 자료구조가 더럽혀지지 않아야 합니다. 위의 경우 new 에서 ..
-
[Algorithm] 백준 1600 말이 되고픈 원숭이 - C++, BFS쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 16. 10:07
1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net #include #include #include using namespace std; int moveY[] = { 0, 0, 1, -1 }; int moveX[] = { 1, -1, 0, 0 }; pair horseMove[] = { {-1, -2}, {-2, -1}, {-2, 1}, {-1, 2}, {1, -2}, {2, -1}, {2, 1}, {1, 2} }; int k, w, h; int map[201][201]; bool visit[201..
-
[Algorithm] 프로그래머스 베스트 앨범 - C++, map, unordered_map쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 13. 13:08
코딩테스트 연습 - 베스트앨범 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 programmers.co.kr #include #include #include #include #include using namespace std; bool cmp(const pair& a, const pair& b){ return a.second > b.second; } vector solution(vector genres, vector plays) { vector answer; unordered_map genresTimes; unordered_map musicInfo; // genres..
-
[Algorithm] 프로그래머스 신고 결과 받기 - C++, unordered_map, set쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 12. 20:27
코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr #include #include #include #include #include using namespace std; vector solution(vector id_list, vector report, int k) { vector answer; answer.resize(id_list.size(), 0); unordered_map userIndex; unordered_map reportList; for(int i = 0; i < id_list.size();..
-
[Algorithm] 프로그래머스 위장 - C++, unordered_map쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 11. 20:10
https://programmers.co.kr/learn/courses/30/lessons/42578 #include #include #include using namespace std; int solution(vector clothes) { int answer = 1; unordered_map map; for(auto cloth : clothes){ map[cloth[1]]++; } for(auto pair : map){ answer *= pair.second + 1; } return answer-1; } unordered_map을 잘 이해해두면 쉽게 풀 수 있는 문제였습니다. 옷의 카테고리를 key로 사용해 같은 카테고리의 옷끼리 묶어둔뒤 (각 카테고리에 있는 가짓수 + 1)을 전부 곱해준 뒤 1을 ..
-
[Algorithm] 프로그래머스 전화번호 목록 - C++, unordered_map쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 11. 20:07
코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr #include #include #include using namespace std; bool solution(vector phone_book) { unordered_map numbers; for(int i = 0; i < phone_book.size(); i++){ numbers[phone_book[i]] = 1; } for(int i = 0; i < phone_book.size(); i++){ string prefix = ""; for(int j = 0;..
-
[Alogorithm] 백준 20366 같이 눈사람 만들래? - C++쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 10. 14:58
20366번: 같이 눈사람 만들래? 높이가 (2, 5), (3, 5)로 구성된 눈사람 둘을 만드는 것이 최적의 경우 중 하나이다. |7-8| = 1 다른 경우로는 (2, 9), (5, 5)로 두 눈사람을 만드는 경우가 있다. |11-10| = 1 www.acmicpc.net #include #include #include #include using namespace std; int n; vector snows; vector snowmans; bool Same(const pair& a, const pair& b){ if((a.first != b.first) && (a.first != b.second) && (a.second != b.first) && (a.second != b.second)) return ..
-
[Algorithm] 백준 2696 중앙값 구하기 : C++, 힙, 재채점 수정쾌락없는 책임 (공부)/알고리즘 문제풀이 2022. 5. 10. 13:36
2696번: 중앙값 구하기 첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스의 첫째 줄에는 수열의 크기 M(1 ≤ M ≤ 9999, M은 홀수)이 주어지고, 그 다음 줄부터 이 수열의 원소가 차례대로 주 www.acmicpc.net #include #include #include using namespace std; int t, m; long long input; int main(){ // init ios::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL); // input cin >> t; while (t--){ priority_queue maxQ; priority_queue minQ; cin >> m; cout ..