본문 바로가기

전체 글

(119)
[해커랭크] Down to Zero II [JAVA] 문제링크 : www.hackerrank.com/challenges/down-to-zero-ii/problem Down to Zero II | HackerRank Find the minimum number of moves to reduce N to zero using the constraints given. www.hackerrank.com discussion의 풀이를 보고 괜찮은 풀이라 생각하고 나중에 다시 상기하면서 풀어본 문제다 top down 식으로 푸는 방법이 먼저 떠올랐었는데 어떤 수의 약수를 구하는 과정을 빠르게 할 방법을 못찾았다. bottom up 방식으로 해결했했다. n의 값은 이전 수(1을 뺀 수)보다 최대 1이 크기 때문에 그 값과, 그 약수들 중에 가장 작은 값보다 1 큰 값 중 작..
[백준] 11000 강의실 배정 [JAVA] 문제링크 : www.acmicpc.net/problem/11000 11000번: 강의실 배정 첫 번째 줄에 N이 주어진다. (1 ≤ N ≤ 200,000) 이후 N개의 줄에 Si, Ti가 주어진다. (1 ≤ Si 이분탐색 등을 생각할..
[해커랭크] Extra Long Factorials [JAVA] 문제링크: www.hackerrank.com/challenges/extra-long-factorials/problem Extra Long Factorials | HackerRank Calculate a very large factorial that doesn't fit in the conventional numeric data types. www.hackerrank.com 문제 이름을 보고서 처음에는 페르마의 소정리 등을 사용한 문제라 생각했는데 나눈 나머지 값을 구하라는 얘기가 없어서 어떻게 푸나 했다. BigInteger라는 것을 검색해서 처음 알게됐고 그대로 써봤더니 풀렸다. static void extraLongFactorials(int n) { BigInteger ans = BigInteger...
[해커랭크] Non-Divisible Subset [JAVA] 문제링크 : www.hackerrank.com/challenges/non-divisible-subset/problem Non-Divisible Subset | HackerRank Find the size of the maximal non-divisible subset. www.hackerrank.com k를 9이라고 하자 어떤 수를 k로 나눈 나머지는 0~8이다 그 수들중에 1은 8을 제외하고 더했을 때 9로 나눈 나머지가 0이 되지 않는다. 마찬가지로 2도 7, 3은 6, 4는 5가 더해졌을때를 제외하고는 9로나눈 나머지가 0이 되지 않는다. 그래서 나눈 나머지가 1과8인 것들의 개수중 더 많은 것, (2,7), (3,6) .... 도 마찬가지로 더 많은 것을 골라서 집합에 포함시키면 된다. 0은 예외..
[해커랭크] Contacts [JAVA] 문제링크 : www.hackerrank.com/challenges/contacts/problem Contacts | HackerRank Create a Contacts application with the two basic operations: add and find. www.hackerrank.com 정말 오랜만에 트라이 문제를 풀었다. public static Node root; public static class Node{ char ch; boolean is_end; int cnt; Node child[] = new Node[26]; } public static void add(String str){ int idx = 0; Node cur = root; while(idx!=str.length()){..
[해커랭크] Binary Search Tree : Lowest Common Ancestor [JAVA] 문제링크 : www.hackerrank.com/challenges/binary-search-tree-lowest-common-ancestor/problem Binary Search Tree : Lowest Common Ancestor | HackerRank Given two nodes of a binary search tree, find the lowest common ancestor of these two nodes. www.hackerrank.com 음, 일단 문제 입력조건을 믿고 풀다가 10번을 넘게 시도해도 틀린 것을 해결하지 못했었다. 입력 조건은 데이터의 크기가 25이하인데 26이 들어가더라. 나중에 확인하고 배열의 크기를 늘렸다. 하... 어쨌든 제대로 풀진 못한 것 같다. 일단 작성한 in..
[해커랭크] Tree: Huffman Decoding [JAVA] 문제링크 : www.hackerrank.com/challenges/tree-huffman-decoding/problem Tree: Huffman Decoding | HackerRank Given a Huffman tree and an encoded binary string, you have to print the original string. www.hackerrank.com 문제 설명에 나온 허프만 인코딩의 특징은 리프 노드에 데이터가 담겨있다는 것이다. 문자열 s를 0번 인덱스부터 문자를 확인하며 명령어로 생각한다. 0일땐 왼쪽 1일땐 오른쪽으로 트리를 탐색하며 리프노드이면 출력하는 것을 반복한다. public static void decode2(String s, Node root, int idx){..
[해커랭크] Binary Search Tree : Insertion [JAVA] 문제링크 : www.hackerrank.com/challenges/binary-search-tree-insertion/problem Binary Search Tree : Insertion | HackerRank Given a number, insert it into it's position in a binary search tree. www.hackerrank.com 현재 노드보다 데이터가 크면 right, 작으면 left를 탐색한다 null인 위치에 데이터를 삽입하고 부모 노드의 포인터가 가리키도록 한다. public static Node insert(Node root,int data) { Node insertNode = new Node(data); if(root ==null) { return inse..