목록map (16)
어흥
문제 링크: www.hackerrank.com/challenges/count-triplets-1/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps Count Triplets | HackerRank Return the count of triplets that form a geometric progression. www.hackerrank.com 1. 주의할 점 - R이 1이라면? - 범위는 Long이다. 개수 또한 Long이 될 수 있다 - 배열의 값이 내림차순으로 정리되는 경우, 답은 0이다 [생각한 TC] #1 5 2 1 2 4 2 4 #2 4 3 16 ..
문제 링크: www.hackerrank.com/challenges/sherlock-and-anagrams/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps Sherlock and Anagrams | HackerRank Find the number of unordered anagramic pairs of substrings of a string. www.hackerrank.com 1. 주의할 점 - substring 길이에 따라 다른 Map에 저장한다 - 정렬을 이용한다 2. 구현 - 최대 길이 100까지 담을 수 있는 Map[]을 생성한다. Map은 형태로..
문제 링크: www.hackerrank.com/challenges/ctci-ransom-note/problem?h_l=interview&playlist_slugs%5B%5D=interview-preparation-kit&playlist_slugs%5B%5D=dictionaries-hashmaps Hash Tables: Ransom Note | HackerRank Given two sets of dictionaries, tell if one of them is a subset of the other. www.hackerrank.com 1. 주의할 점 - Map에 대해서 알고있어야 한다 - Magazine에 A 단어가 B개 있을 때, Note에 A 단어가 B개보다 많다면 No 출력 2. 구현 - Magazi..
문제 링크: www.hackerrank.com/challenges/sparse-arrays/problem Sparse Arrays | HackerRank Determine the number of times a string has previously appeared. www.hackerrank.com 1. 주의할 점 - Strings에 특정 단어가 몇개 들어있는지 미리 기록한다 - Map을 활용하면 편하다(N: Strings 크기, M: Queries 크기 -> 시간 복잡도: MlgN) 2. 구현 - Strings에 들어있는 단어를 Map m에 형태로 저장한다 - Queries에 포함된 단어가 m에 몇개 들어있는지 Result 벡터에 차례대로 삽입한다 #include using namespace std;..
문제 링크: www.acmicpc.net/problem/20422 20422번: 퀼린드롬 (Easy) 7과 r이 완전히 거울 대칭으로 보이지는 않지만, 상민이는 이 정도로 비슷하면 인정하기 때문에 거울 대칭 표에 7과 r은 거울 대칭이라고 적었다. www.acmicpc.net 1. 주의할 점 - 대칭되는 문자들을 미리 Map에 저장한다 - 하나하나씩 조건들을 만족하면서 풀어나간다 - 문자열의 길이가 홀수일 경우, 가장 중간에 위치한 문자열은 자기자신이 대칭이여야 한다 2. 구현 - make_map() 함수를 통해 대칭되는 문자들을 미리 Map에 저장한다 - (문자열의 길이+1)/2만큼 문자들을 비교한다 -> 위의 파란색 조건을 비교하기 위해 - 양끝에서부터 안쪽으로 차례대로 문자들을 비교한다 - 왼쪽에서..
문제 링크: www.acmicpc.net/problem/4358 4358번: 생태학 프로그램은 여러 줄로 이루어져 있으며, 한 줄에 하나의 나무 종 이름이 주어진다. 어떤 종 이름도 30글자를 넘지 않으며, 입력에는 최대 10,000개의 종이 주어지고 최대 1,000,000그루의 나무가 주어 www.acmicpc.net 1. 주의할 점 - EOF를 입력받을 때까지 입력받도록 한다 - 소숫점 아래 4번째 숫자까지만 받는다 2. 구현 - while(getline(cin, str)) 을 통해 EOF를 입력받기 전까지 종의 이름을 입력 받는다 - Map을 통해 각 종이 몇 번 입력 받았는지 계산한다 - 각 종이 입력 받은 백분율을 소수점 4째 자리까지 출력하도록 한다 #include #include #inclu..
문제 링크: programmers.co.kr/learn/courses/30/lessons/43163 코딩테스트 연습 - 단어 변환 두 개의 단어 begin, target과 단어의 집합 words가 있습니다. 아래와 같은 규칙을 이용하여 begin에서 target으로 변환하는 가장 짧은 변환 과정을 찾으려고 합니다. 1. 한 번에 한 개의 알파벳만 바꿀 수 programmers.co.kr 1. 주의할 점 - Map이나 배열을 통해 몇번 만에 Words에 있는 단어에 도착했는지 저장해야 한다 2. 구현 - DFS(현재 문자열, 바꾼 횟수)를 수행하며 DFS 함수 내에는 다음과 같은 조건들이 있다 - DFS() 함수의 가장 처음에는 현재 바꾼 횟수가 이미 구한 정답보다 많다면 Return한다 - 현재 문자열이..
문제 링크: https://www.acmicpc.net/problem/15653 15653번: 구슬 탈출 4 첫 번째 줄에는 보드의 세로, 가로 크기를 의미하는 두 정수 N, M (3 ≤ N, M ≤ 10)이 주어진다. 다음 N개의 줄에 보드의 모양을 나타내는 길이 M의 문자열이 주어진다. 이 문자열은 '.', '#', 'O', 'R', 'B' 로 이루어져 있다. '.'은 빈 칸을 의미하고, '#'은 공이 이동할 수 없는 장애물 또는 벽을 의미하며, 'O'는 구멍의 위치를 의미한다. 'R'은 빨간 구슬의 위치, 'B'는 파란 구슬의 위치이다. 입력되는 모든 보드 www.acmicpc.net 1. 주의할 점 - 기존의 구슬 탈출 문제들과 푸는 방식은 같다. 다만, 최대횟수가 10번을 넘어갈 수 있다. - ..