문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42577
메모
- 모든 전화번호 각각에 대해서 string 배열값 앞에서부터 비교? 더 작은 거 길이만큼 for문 돌려서 긴 거랑 비교해서 풀려고 했는데... 이렇게 되면 더 작은 모든 문자열에 대해서 for문을 돌려야 됨. 모든 문자열 개수-1 * 작은 문자열의 길이 만큼 for문 돌리면 시간 초과가 뜨겠지...
- 해시 맵에 가능한 문자열들을 value 값이 1인 key로 넣어서 그 해시맵을 대상으로 문자열들을 돌리는 코드를 작성해야 됨
맞힌 코드
#include <bits/stdc++.h>
using namespace std;
bool solution(vector<string> phone_book) {
bool answer = true;
// HashMap
unordered_map<string, int> map;
for (int i=0; i<phone_book.size(); i++){
map[phone_book[i]] = 1; // 전화번호 목록에 1개 존재함을 표시
}
for (int i=0; i<phone_book.size(); i++){
for (int j=0; j<phone_book[i].size()-1; j++){
string phone_number = phone_book[i].substr(0, j+1);
if (map[phone_number]){
answer = false;
}
}
}
return answer;
}
참고)
https://coding-grandpa.tistory.com/90
[프로그래머스] 전화번호 목록 문제 풀이(해시 Lv. 2) - C++
0. 동일 유형 문제 [프로그래머스] 완주하지 못한 선수 (해시 Lv. 1) [프로그래머스] 전화번호 목록 (해시 Lv. 2) [프로그래머스] 위장 (해시 Lv. 2) [프로그래머스] 베스트 앨범 (해시 Lv. 3) Youtube 영상으
coding-grandpa.tistory.com
HashMap
https://dev-nicitis.tistory.com/52
UNSEEN 대비 4. C++ 주요 컨테이너 (2) (map, unordered_map)
해당 글은 다음 UNSEEN 대비 4. C++ 주요 컨테이너 (1) (array, vector, list) (tistory.com)에서 다루지 않은 나머지 컨테이너를 다루는 글입니다. 5. 맵(map) 맵(std::map)은 키(Key)와 값(value)의 쌍들을 저장하는 이
dev-nicitis.tistory.com
https://marmelo12.tistory.com/316
[C++ STL] std::unordered_map(연관 컨테이너)
std::unordered_map std::unordered_map은 HashTable로 구현된 자료구조로 탐색에 걸리는 시간 복잡도는 O(1) -> 상수시간복잡도. -> 기존의 std::map은 이진 탐색 트리로 탐색의 시간 복잡도는 O(logN)의 시간 복잡
marmelo12.tistory.com
'Algorithm' 카테고리의 다른 글
[백준/BOJ] 25757번 임스와 함께하는 미니게임 C++ (0) | 2025.01.23 |
---|---|
[백준/BOJ] 2164번 카드2 C++ (0) | 2024.11.20 |
[프로그래머스] 42842번 카펫 C++ (0) | 2024.11.13 |
[프로그래머스] 42839번 소수 찾기 C++ (0) | 2024.11.13 |
[프로그래머스] 42840번 모의고사 C++ (0) | 2024.11.13 |