본문 바로가기

hash5

[C++, 문자열] 프로그래머스 오픈채팅방 문제 https://programmers.co.kr/learn/courses/30/lessons/42888 코딩테스트 연습 - 오픈채팅방 오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오 programmers.co.kr 해답 Stringstream과 hash를 이용해 풀이하였다. #include #include #include #include #include using namespace std; unordered_map nameMap; class tans{ public: string ac; string h; }; vector solution(vector record) { .. 2022. 4. 4.
vector, unordered_map 전체 순회 알고리즘 속도 비교 vector는 배열을, unordered_map은 hash_table를 사용해 hash를 구현한 모두 유명한 자료구조 컨테이너이다. unordered_map의 탐색 시간 복잡도는 O(1)이다. 그렇다면 전체 순회의 경우 vector와 비교할 때는 어떻게 될까? 단순히 시간복잡도만을 계산하면 둘 다 O(n)인데 어떤 것이 더 빠를까? 직접 해보자 #include #include #include #include #define COUNTER 1000000 int main() { using namespace std::chrono; // std::chrono::milliseconds is an instatiation of std::chrono::duration: int tmp; std::vector v; std:.. 2020. 5. 3.
[Python, hash] map, BOJ 1920번 수 찾기 문제 풀이 python의 map 함수란? map(function, iterable, ...) 첫번째 인자로 함수의 이름이 들어온다. 두번째 인자로 iterable한 데이터(ex list, dictionary)가 위치한다. 즉 두번째 인자를 하나씩 첫번째 함수의 인자로 넣어 list 형태로 반환하는 함수이다. hash 개념을 구현한 함수이다. BOJ 1920번 수 찾기 문제풀이 위 문제의 의도는 원래 이분탐색을 통해 풀이하는 것이 정해이지만 파이썬의 map함수를 이용하여 hash 개념으로도 풀 수 있다. N, A = int(input()), {i: 1 for i in map(int, input().split())} M = input() for i in map(int, input().split()): print(A.g.. 2020. 1. 5.
[C++, Hash] 프로그래머스 베스트앨범 문제 풀이 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42579 코딩테스트 연습 - 베스트앨범 | 프로그래머스 스트리밍 사이트에서 장르 별로 가장 많이 재생된 노래를 두 개씩 모아 베스트 앨범을 출시하려 합니다. 노래는 고유 번호로 구분하며, 노래를 수록하는 기준은 다음과 같습니다. 속한 노래가 많이 재생된 장르를 먼저 수록합니다. 장르 내에서 많이 재생된 노래를 먼저 수록합니다. 장르 내에서 재생 횟수가 같은 노래 중에서는 고유 번호가 낮은 노래를 먼저 수록합니다. 노래의 장르를 나타내는 문자열 배열 genres와 노래별 재생 횟수를 나타내는 정수 배열 play programmers.co.kr 풀이 참고하지 않고 스스로 한 번에 풀어서 더욱 뿌듯한 문제이.. 2019. 12. 12.
[C++, Hash] 프로그래머스 위장 문제 풀이 문제링크 https://programmers.co.kr/learn/courses/30/lessons/42578 코딩테스트 연습 - 위장 | 프로그래머스 programmers.co.kr 풀이 기본적인 접근은 맞았는데 응용력이 부족했던 문제이다. 조합을 구성할 때 선택하지 않는다는 선지도 같이 포함시켜 계산한다는 것이 포인트이다. 대분류의 조합들을 hash를 통해 count하고 선택하지 않는다는 선지를 포함시켜 각각 +1 해준 뒤 곱하면 되는 것이다. 그리고 스파이가 하루에 최소 한 개의 의상은 입으므로 모두 입지 않는다는 경우의 수를 빼면 답이 된다. #include #include #include using namespace std; int solution(vector clothes) { int answ.. 2019. 12. 11.