일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 스프링프레임워크
- 블로그개설
- c
- 프로그래밍
- 인코더
- hackerrank
- 연결리스트
- git
- spring
- 머신러닝
- TensorFlow
- Rebase
- Map
- 백트래킹
- vue.js
- 카카오인코더
- c++
- Android
- 프로그래머스
- python3
- 백준
- BFS
- Kotlin
- ADAS
- retrofit
- 스프링
- DP
- stl
- 스프링 프레임워크
- 안드로이드
Archives
- Today
- Total
이것저것 공부한 기록
C++) HackerRank 풀이_Hash Tables : Ransom Note 본문
Hash / Map stl에 대해서 공부하기 위해 집어든 문제
갯수까지 파악해야한다는 조건을 첨에 못 봐서 문자열을 하나하나 비교하고 있었는데,
6 5 two times three is not four two times two is four |
위 Input에서 오답에 걸려서 자세히 보니 밑에는 two가 두 번 나오기때문에 안된다는거다
그렇지그렇지
그래서 count 배열이라도 만들어놓고 하나하나 빼줘야하나 했는데
친구가 보더니 바로 이때 map을 사용해야 한다고 하더라
그...그러게?
그래서 첨으로 공부해봤는데... map 이거 신세계임 ;
Key-Value 조합으로 저장할 수 있음. value가 필요없다면 set으로 저장해버려도 됨.
그러나결국 Key로 Value를 찾아서 쓸 일이 많으므로 map을 공부하도록 합시다.
Magazine array의 각 단어들을 key로 하는 맵을 만든다.
Value는 각 단어들이 Magazine array에서 출현하는 빈도수로
그래서 note의 각 단어들을 넣어서 해당 Key에 해당하는 값이 저장되어 있는지,
저장되어 있다면 value가 1인지 (쓸 수 있는지) 계산해서
쓸 수 있는 경우 value에서 --하고 종료
뭐 이런 식으로 짜면 됩니다.
(전체코드는 더러워서 함수만)
void checkMagazine(vector<string> magazine, vector<string> note) {
map<string, int> words_map;
int lenMagazine = magazine.size();
int lenNote = note.size();
for (int i = 0; i < lenMagazine; ++i)
{
//insert 방법이 3개인데 맨 밑에 있는게 현재 쓰기 좋음
//words_map.insert(pair < string, int>(magazine[i], 1));
//words_map.insert(make_pair(magazine[i], 1));
words_map[magazine[i]] += 1;
}
for (int i = 0; i < lenNote; ++i)
{
if (words_map.end() != words_map.find(note[i]))
{
if (words_map[note[i]] == 0)
{
cout << "No" << endl;
return;
}
else
{
words_map[note[i]] -= 1 ;
}
}
else
{
cout << "No" << endl ;
return;
}
}
cout << "Yes" << endl;
return ;
}
'Study > 프로그래밍 문제풀이' 카테고리의 다른 글
C++) 프로그래머스_전화번호 목록 (0) | 2019.10.26 |
---|---|
C++) HackerRank 풀이_Alternating Characters (0) | 2019.10.25 |
C++) 프로그래머스 문제 풀이_다음 큰 숫자 (0) | 2019.10.24 |
C++) 프로그래머스 문제 풀이_콜라스 추측 (0) | 2019.10.24 |
C++) 백준 2011번 풀이_암호코드 (0) | 2019.10.23 |