본문 바로가기
반응형

분류 전체보기714

897 : Increasing Order Search Tree ( leetcode / java ) *해결 과정 모든 Tree를 순회하고, 오른쪽 트리만 계속 만들면 된다. 나는 ArrayList를 사용하고 get()을 통해 순회하였다. 여러가지 해설을 찾아보니 LinkedList로 선언하고 remove로 제거하면서 while에서 해결하는 것도 괜찮은 방법이라 생각한다. *ArrayList 사용 import java.util.*; class Solution { List list = new ArrayList(); public TreeNode increasingBST(TreeNode root) { DFS(root); Collections.sort(list); TreeNode node = new TreeNode(list.get(0)); list.remove(0); makeTree(node, 0); retur.. 2020. 10. 28.
700 : Search in a Binary Search Tree ( leetcode / java ) *해결 과정 void를 통한 함수를 사용하는 것과 TreeNode를 통한 함수를 사용하는 방법 2개가 있다. class Solution { TreeNode tree = null; public TreeNode searchBST(TreeNode root, int val) { DFS(root,val); return tree; } public void DFS(TreeNode root, int val){ if(root.val==val) { tree=root; return; } if(root.left!=null) searchBST(root.left,val); if(root.right!=null) searchBST(root.right,val); } } class Solution { public TreeNode sea.. 2020. 10. 28.
617 : Merge Two Binary Trees ( leetcode / java ) leetcode.com/problems/merge-two-binary-trees/ Merge Two Binary Trees - LeetCode Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview. leetcode.com *해결과정 Tree 2개를 합쳐야 한다. 2가지 방법이 있다. 1. DFS로 새로운 Tree를 만들고 Tree1, Tree2를 전부 더해준다. 2. 새로운 tree를 생성하지 않고 기존의 Tree1에 Tree2를 더해서 반환한다. 결국 초기조건을 잘 잡아야 하는데, 1번 같은 경우 DFS이면.. 2020. 10. 27.
3687 : 성냥개비 ( 백준 / java ) www.acmicpc.net/problem/3687 3687번: 성냥개비 각 테스트 케이스에 대해서 입력으로 주어진 성냥개비를 모두 사용해서 만들 수 있는 가장 작은 수와 가장 큰 수를 출력한다. 두 숫자는 모두 양수이어야 하고, 숫자는 0으로 시작할 수 없다. www.acmicpc.net *해결과정 이 문제는 느낌상 dp였다. 하지만... dp는 항상 어렵다.. 특히 이 문제는 더욱 어려웠다. 규칙을 찾는 방식이 너무 독특했다. 먼저 dp에서 가장 핵심은 구해야 하는 것이 무엇이냐!?이다. 우리는 가장 작은 수와 큰 수를 구해야한다. 즉 dp에 저장되는 값들은 성냥을 이용한 갯수도 아니고 어떤 종류도 아니고 가장 작은 수, 큰 수가 저장되어야 하는 것이다. 따라서 2개의 dp배열을 만들어야 하며 100.. 2020. 10. 27.
2579번 : 계단 오르기 ( 백준 / java ) www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net *해결과정 연속된 세개의 계단을 모두 밟아서는 안된다. 단, 시작점은 계단에 포함되지 않는다. 이 부분이 가장 핵심적이라고 생각한다. 처음에는 건널 수 있는 계단 조합을 생각해서 212칸 이동 + 121칸 이동 12칸 이동 / 21칸 이동 / 2칸 이동 등등 어떻게 하면 모두를 만족시키면서 dp를 최대값으로 계속 추가할 수 있는지 고민하였다. 하지만 접근 방법이 잘못되었다. 계속 최선의 계단의 점수로 업데이트를 하는 것은 .. 2020. 10. 26.
자바 시간 Millisecond 다루기 *시간 계산하기 1. 시간은 String 형으로 저장되어 있어야 하며, 2. SimpleDateFormat의 parse를 통해 Date형으로 변환한다. 3. Calendar의 setTime을 통해 시간을 정하고 add를 통해 원하는 시간만큼 더하고 뺄 수 있다. ( 시, 분, 초, 밀리초) 4. SimpleDateFormat의 format을 통해 Date를 다시 원하는 모양의 String으로 변환한다. package kakao; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.*; public class Main { public static void main(String[] args) throws Pa.. 2020. 10. 23.
실수 소수점 다루기 ( Math & String.format) 목차 1. 소수점을 나타내는 JAVA의 자료형은? ( float, double ) 2. 소수점 자르는 함수 1) Math.round() , Math.ceil() , Math.floor() 2) String.format 코딩테스트를 풀던 중, 시간 계산과 관련한 문제들이 많이 등장한다. 소수점은 몇자리까지 필요한지, 나타내야 하는 실수는 어떤 형태인지 자유자재로 다루는 기술이 필요하다. 자바에서 제공하는 소수점과 관련한 함수들을 살펴보고 필요한 것을 골라 써보자. 1. float vs double 실수 형을 나타내는 데이터 타입은 float, double 2가지 종류가 있다. 세세한 기능과 원리의 비교보다는 소수점을 다루는 관점에서 살펴보고자 한다. 크게 구분하는 방법은 소수점 자리의 표현 갯수이다. fl.. 2020. 10. 22.
static vs non-static 개요 static 변수들이 어떻게 생성되고 어디에 저장되는지 알아보겠습니다. 또한 static의 장단점을 알아보겠습니다. 목차 static의 생성 과정과 저장 위치 static 장점 static 단점 non-static 특징 static의 생성 과정과 저장 위치 static은 JVM Runtime Data Area의 Method Area에 위치하며 Class Variable로 분류됩니다. class파일이 JVM에 의해 ClassLoader에 들어오면 Loading 이후에 Linking 과정 중 Prepare에서 static 변수에 메모리를 할당하고 초기값을 가집니다. Linking 이후 Initialization에서, 모든 static 변수들은 자신이 가지고 있는 해당 값이 할당됩니다. 이 공간이 Met.. 2020. 9. 21.
URI vs URL vs URN 개요 URI와 URL의 개념이 다른데 어떤 차이가 있는지 궁금했습니다. 따라서 URI, URL, URN 내용을 정리합니다 목차 URI URL URN 집합모형 URI(Uniform Resource Identifier) URI는 resource들을 구별해주는 "식별자" 역할입니다. (A URI is an identifier of a specific resource. Like a page, or book, or a document.) ... Each URI begins with a scheme name ... ... A URI can be further classified as a locator, a name, or both ... ... The URI itself only provides identifica.. 2020. 9. 6.
반응형