본문 바로가기

CMP2

[백준 11652/c++] 카드 백준 1302 번 문제의 베스트셀러와 같은 방법을 이용하여 풀었다 조건이 매우 큰 수이지만, -2^62 ~ 2^62 사이이므로 long long 타입의 -2^63 ~ 2^63-1 사이의 범위 이내이므로 따로 어렵게 생각할 필요없이 그대로 long long 타입으로 계산하면 되는 문제였다... 난 long long 범위 넘는 줄 알고 string 이용해서 풀려고 하다가 cmp 에서 머리 터졌지만ㅜㅜ 자료형의 중요성! 수가 크다고 바로 string 을 생각 말고 항상 수로 표현 가능한 자료형 범위인지 다시 생각해보고 문제를 풀자 + 100000 개의 카드이므로 집합 10만개를 0으로 초기화 후, 카드마다 그 수의 인덱스에 카운트++ 하는 방법도 있지만, 그럴 경우 10만개의 메모리를 할당, 차지해야하므로 메.. 2022. 7. 13.
[백준 1302/c++] 베스트셀러 map을 사용하여 string 마다 카운트 해준뒤 (unordered_map 도 가능하다) 맵을 벡터에 페어로 넣어서 벡터를 요소(페어)의 second 값으로 내림차순 정렬하고 second 값이 같으면 first 값으로 오름차순 정렬하는 사용자 정의 함수를 만들어주면 되는 문제이다 map 을 벡터로 넣는 방법은 https://unluckyjung.github.io/cpp/2020/05/07/Sort_map_by_value/ 이 분의 블로그 글이 잘 정리되어 있어 첨부한다 ↑ 위의 const pair& a 의 부분은 그냥 pair a 로 간단하게 해도 문제없이 작동한다 https://www.acmicpc.net/problem/1302 1302번: 베스트셀러 첫째 줄에 오늘 하루 동안 팔린 책의 개수 N이 .. 2022. 7. 8.