본문 바로가기

map14

[백준 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.
[백준 14425/c++] 문자열 집합 문자열끼리의 집합에서 같은 문자열이 있는지 찾고 그 수를 카운트 하는 문제다 무작정 for 문으로 if == 으로 비교하기엔 수가 너무 많아 시간초과가 될 수 있으므로 map 이나 set 등을 써서 hash 를 이용해서 찾도록 하여 연산 속도를 높여 시간내에 풀 수 있다 굳이 정렬이 필요하지 않으므로 unordered_map 을 사용하였다 https://www.acmicpc.net/problem/14425 14425번: 문자열 집합 첫째 줄에 문자열의 개수 N과 M (1 ≤ N ≤ 10,000, 1 ≤ M ≤ 10,000)이 주어진다. 다음 N개의 줄에는 집합 S에 포함되어 있는 문자열들이 주어진다. 다음 M개의 줄에는 검사해야 하는 문자열들이 주어 www.acmicpc.net #include using.. 2022. 7. 10.
[백준 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.
[프로그래머스 1 / c++] 숫자 문자열과 영단어 -map 맵을 이용해서 푸는 문제인건 바로 알 수 있었다 하지만 매칭되지 않으면 빈문자열이 나온다는 점과 매칭되지 않으면 문자를 변수에 저장하고 다음 문자와 합쳐서 합쳐진 변수로 맵과 비교하는 것을 반복하는 점, map 을 외부 함수로 선언 시, 맵을 참조 가능하려면 함수 호출을 해야 되는 점... 많이도 몰랐다 맵은 외부에서 함수로 따로 초기화 외에도 함수 내부에서 초기화 할 수도 있다 #include using namespace std; unordered_map mapi; void cov(){// mapi 을 초기화한 참조데이터를 함수로 따로 만들어 두었다 mapi["zero"]="0";// 이 경우 mapi 이 전역 변수 이므로 mapi["one"]="1";// 여러 함수에서 호출해서 mapi을 사용가능하다.. 2022. 6. 22.