본문 바로가기

알고리즘 문제/Hackerrank3

[hackerrank] Grid Challenge 문제 : https://www.hackerrank.com/challenges/grid-challenge/problem NxM 배열이 주어지면 각 열이 사전 순 배열이 될 수 있는지 판단하는 문제. 같은 행에 있는 문자들은 순서를 변경할 수 있다. 각 열을 사전순으로 배열한 후 같은 행에 있는 문자들이 사전순으로 정렬되어 있는지 판단하면 된다. 각 열을 사전순으로 배열한다면 a1 a2 a3 a4 b1 b2 b3 b4 c1 c2 c3 c4 d1 d2 d3 d4 a1 b2여서 2번째 열이 사전순 배열이 안되어 a2보다 작은 a1을 a2대신 사용한다고 하더라도 b1.. 2020. 2. 22.
[hackerrank] Sherlock and Anagrams 문제 : https://www.hackerrank.com/challenges/sherlock-and-anagrams/problem 입력 문자열의 부분문자열들 중 애너그램 문자열이 되는 문자열 pair 개수를 구하는 문제. 애너그램이 될 수 있는 문자열들은 길이가 서로 같아야 하므로 먼저 길이가 같은 부분 문자열들을 구한다. 그리고 구한 부분 문자열을 오름차순 정렬한뒤 map에 저장한다. map의 key는 정렬된 문자열이고 value는 key가 나온 횟수이다. 즉, "mom"이 입력 문자열로 주어지고 길이가 2인 부분 문자열을 구했을 때, ["mo", "om"] 이 나오고 각 문자열들을 오름차순 정렬하면 ["mo", "mo"] 가 된다. 이를 map에 넣으면 map에는 1개의 요소가 저장되고 이는 "mo".. 2020. 2. 16.
[hackerrank] Largest Pyramid 문제 : https://www.hackerrank.com/contests/hourrank-23/challenges/largest-pyramid/problem int arr[351][351]; //arr[i][j] : (i,j) 요소 값. (입력값) int max_down[400][351][351] = {0}; //max_down[size][i][j] : j열의 arr[i][j] 부터 arr[i+size-1][j] 중 최대 값 int max_right[400][351][351] = {0}; //max_right[size][i][j] : i행의 arr[i][j] 부터 arr[i][j+size-1] 중 최대 값 int sum[351][351] = {0}; //sum[i][j] : (1,1) ~ (i,j) 까지.. 2020. 2. 15.