목록Problem Solving/해커랭크 (4)
momodudu.zip
해커랭크의 Greedy는 대부분이 Sorting이 핵심이다. 1) Minimum Absoulte Difference in an array 주어진 array에서 두개의 숫자 쌍 차이의 절댓값중에서 가장 작은애를 뽑아내는 문제. sorting을 먼저 해야한다. 그리고 각 인접끼리 빼주면서 최소값을 뽑아내면 된다. 2) Luck Balance 질때마다 luck balance가 올라가는데, 이겨야하는 대회가 있고 져도 되는 대회가 있다. 그래서 져도 되는 대회는 무조건 다 지고, 이겨야하는 대회는 최소한으로만 이긴다. 이겨야 하는 대회는 luck balance대로 sorting을 해주고, 이길만큼만 이긴다. 3) Greedy Florist 이건 문제 이해가 도저히 안돼서 GG. 문제를 이해하려고 하는데만 1시간..
1) Swap Nodes 그냥 이진바이너리 트리&Inorder Traversal 구현하면 된다. 다만, 처음에 그냥 array로 구현하려고 했다가 Swap Operation보고 다시 새로짰다-_-;; Swap operation이 생각보다 복잡해서 array로 다루려니 머리가 아파서.. 이런건 그냥 node둬서 left/right 두고 재귀로 하는게 편하다. 2) Hash Table:Ice Cream Parlor 특정값 money를 가지고 아이스크림 cost array중에 살 수 있는 set을 뽑아내는 문제. for문을 돌면서 각 money-cost[i]를 map에서 찾으면 된다. 없으면 cost를 map에 저장한다.답은 항상 unique한 조건이 있으니까..언젠간 찾아진다.. 3) Pairs 정수 arr..
1) Ransom note 주어진 문자열 2개에서, 첫번째 s1에 주어진 문자들로 s2의 문자를 만들 수 있는지 체크하는 문제 s1 = give me one grand today night s2 = give one grand today s1에서 주어진 단어의 집합은 {give, me, one, grand, today, night}이고 이 단어들로 s2를 구성할 수 있으므로 Yes를 return, 아니면 No를 출력한다. 간단한 hash map 문제이다. 2) Two Strings 두 string s1,s2간의 sub string이 존재하는지를 묻는 문제이다. 알파벳 하나도 substring이므로 그냥 alphabet counting을 해서 같은게 하나라도 존재하면 OK, 아니면 NOK 3) Sherloc..
마지막으로 푼 문제들 정리겸 포스팅. 1) String: Making Anagrams Anagram의 기본적인 문제. 두 string을 서로 anagram 관계로 만드려면 알파벳을 모두 몇개 삭제해야되는지 출력하는 문제. 각 string의 alphabet counting후 다른 갯수를 리턴해주면 된다. 2) Alteranting Characters 하나의 string에서 문자열이 한번씩 반복되도록 하려면 문자열에서 문자를 몇개 삭제해야되는가? 의 문제 아주 간단한 반복문 문제. 첫 문자열을 저장해놓고, 반복문을 돌리면서 이전 문자열과 비교한다. 이전 문자열과 다르면 counting하지 않고, 이전 문자열과 같으면 counting한다. 3) Sherlock and valid string valid stri..