본문 바로가기

easy67

[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.
[leetcode][1266] Minimum Time Visiting All Points 문제 : https://leetcode.com/problems/minimum-time-visiting-all-points/ 두 점 사이의 거리 = | x점 사이의 거리 | + | y점 사이의 거리 | potints를 앞에서부터 탐색하면서 두 점 사이의 거리들의 합을 구하면 정답이 된다. 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/easy/1266.%20Minimum%20Time%20Visiting%20All%20Points.py 이제부터는 파이썬으로 풀도록 노력해봐야겠다. 2019. 12. 7.
[leetcode][1207] Unique Number of Occurrences 문제 : https://leetcode.com/problems/unique-number-of-occurrences/ set, map을 사용. arr 배열을 탐색하면서 set에 arr[i]들을 저장한다. map은 arr[i]이 나온횟수를 저장하는 cnt, cnt의 value가 나온 횟수를 저장하는 num. 총 2개의 map을 준비한다. 즉, arr = { 1, 2, 2, 1, 1, 3, 2 } 이라면 cnt = { (1, 3), (2, 3), (3, 1) } num = { (1,1), (3, 2) } 이 된다. arr 배열을 탐색하면서 map1, map2개를 세팅한다. 그리고 num[i] = 1 이 되는 모든 i의 개수(uniqueNumCnt)를 구한다. 위 예제에서는 1이 된다. 만약 uniqueNumC.. 2019. 10. 2.
[leetcode][1189] Maximum Number of Balloons 문제 : https://leetcode.com/problems/maximum-number-of-balloons/ text문자열의 모든 문자를 탐색하면서 alph[문자] = 문자 나온 횟수 위 배열을 갱신한다. balloon은 a 1개, b 1개, l 2개, n 1개, o 2개로 이루어져있기 때문에 이 개수들을 모두 만족해야한다. 따라서 (alph[a] / 1), (alph[b] / 1), (alph[l] / 2), (alpha[n] / 1), (alpha[o] / 2) 중 최소값이 정답이 된다. 시간복잡도는 O(|text|). 소스코드 : https://github.com/fpdjsns/Algorithm/blob/master/leetcode/1189.%20Maximum%20Number%20of%20Bal.. 2019. 9. 25.
[leetcode][1200] Minimum Absolute Difference 문제 : https://leetcode.com/problems/minimum-absolute-difference/ arr 배열을 오름차순으로 정렬한다. b - a 값은 오름차순 정렬시 바로 옆에 있는 요소들의 차가 최소 값이 된다. 따라서 정렬된 arr 배열을 앞에서부터 탐색하면서 [arr[i], arr[i-1]]가 [a, b]이다. arr[i-1] - arr[i] 값을 구하고 이 값이 이때동안 계산한 diff의 최소값보다 크다면 정답이 될 수 있으므로 skip. diff 최소 값이랑 같다면 정답배열에 추가. diff 최소 값보다 작다면 이때동안 구한 정답 배열을 빈 배열로 초기화 시키고 정답 배열에 추가한다. 시간복잡도는 정렬하는데 걸리는 시간인 O(NlogN). 소스코드 : https://github.. 2019. 9. 22.
[leetcode] 1160. Find Words That Can Be Formed by Characters 문제 : https://leetcode.com/problems/find-words-that-can-be-formed-by-characters/ Map을 이용. 일단 chars 문자열을 모두 방문하면서 { 문자, 개수 }를 map에 저장한다. words 문자열들을 방문하면서 현재 탐색 중인 문자열의 문자도 탐색한다. 탐색 중인 문자가 chars map에 있는지 확인하고 있는 경우 개수를 1개 빼준다. 만약 문자가 map에 없거나 map에 탐색중인 문자의 개수가 0개라면 good string이 아니므로 탐색을 종료한다. good string이 될 수 있는 경우(탐색중인 문자열의 모든 문자들을 탐색완료 시) 문자열의 문자 길이를 정답에 더해준다. N : strings의 개수 / M : strings[i]의 길.. 2019. 9. 1.