Serialize and Deserialize BST
Problem Solving 2020. 10. 9. 23:51

Serialize and Deserialize BST - 문제 내용 : BST를 직렬화하고 이를 Deserialize 하여라 - 접근 방법 DFS를 통해서 node의 value를 String화 하고 이를 복구 하면서 다시 Node Tree를 만든다. 상기와 같이 DFS 방식으로 1,2,4,null,3,null,5 순서로 String을 만들고 이를 다시 역직렬화 하면 된다. 역직렬화시 주의해야 할 점은 직렬화되서 넘어온 값을 Queue로 하나씩 빼나가면서 처리 해야 한다는 것이다. 코드는 다음과 같다. var serialize = function(root) { console.log(dfs(root)); function dfs(node, queue = new Array()) { if(node == null)..

Android TV Application 최초 설정
Android 2020. 10. 8. 14:36

Android TV APP으로 정의 Manifest.xml android.intent.category.LEANBACK_LAUNCHER" 정의 해야함 앱 아이콘 등록 기본적으로 Android는 상위와 같은 형태로 App Icon을 표시하는데 TV 용 아이콘은 Banner를 사용한다 이미지 사이즈는 배너는 크기가 320 x 180픽셀인 xhdpi 리소스 로 정의해서 처리 하면 된다. 그런데 216 x 122 픽셀로 해도 문제가 없는거 같다. android:banner = "@drawable/videos_by_google_banner" 안드로이드TV와 일반 안드로이드 단말의 앱이 호환 되는 경우와 안드로이드 TV만 사용하는 앱으로 설정 할 수 있는 방법이 있는데 다음과 같이 feature를 설정해 주면 된다...

Insert into a Binary Search Tree
Problem Solving 2020. 10. 7. 23:42

Insert into a Binary Search Tree Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com - 문제 내용 : BST에 value를 insert 하라 - 접근 방법 기본 내용이기 때문에 별 내용이 없다. var insertIntoBST = function(root, val) { if(root == null) return new TreeNo..

Rotate List
Problem Solving 2020. 10. 7. 23:11

Rotate List Rotate List - 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 - 문제 내용 : 주어진 Linked 전체를 우측으로 k번 옮긴 새로운 Linked List를 return 해라 - 접근 방법 몇 번째의 노드가 새로운 head가 될 것이냐를 찾는 문제이다. 위와 같이 문제가 나왔다고 하면 k번째에 따라 다음과 같은 변화가 일어난다. 여기서 알수 있는 Rule은 k번째가 0번, 2번, 4번이라고 하면 변화가 없다는 것이다. 즉, k가 n..

Use Case Diagrams
System Design 2020. 10. 5. 23:54

Use Case Diagrams Actor : 시스템의 기능을 사용하는 사용자 외부 시스템 Actor : 반듯이 사람만을 Actor라고 보진 않는다. 외부시스템도 Actor로 표현 시스템 범위 : 만들고자 하는 시스템의 Boundary를 네모로 표현한다 Use Case 명 : 어떤 행위를 하게될 기능을 짧게 명세 하는 것이다. 예) 높이를 얻어온다, 돈을 인출한다 등 주의 사항 : Use Case Diagrams이 사용자 use case 자체를 역으로 수정해서는 안된다.

Object Oriented Analysis and Design
System Design 2020. 10. 5. 23:06

OOP Design의 Steps 요구사항 수렴 : 어떤 문제를 해결하고자 하는지, 어떤 기능을 요구하는지 명확화 Documentation 시스템 서술 사용자 관점에서 시스템을 서술한다 필요하다면 목업(wireframes)등을 만든다 Classes 정의 Attributes Methods Diagrams Design Class Diagram Sequence Diagram States Diagram 요구사항 수렴 기능 요구사항 어떤 형태의 기능이 있는가 입력에 대한 대응은 어떻게 이루어 지는가 어떤 행동이 이루어 지길 바라는가 비기능 요구사항 시스템 차체에서 제공해야하는 직접적 기능을 말하진 않는다 성능 요구사항 법적 제한사항 문서 작성 요구사항 시스템 서술 Use Case : 사용자 측면에서 보는 시스템 T..

Complement of Base 10 Integer
Problem Solving 2020. 10. 5. 22:43

Complement of Base 10 Integer Explore - LeetCode LeetCode Explore is the best place for everyone to start practicing and learning on LeetCode. No matter if you are a beginner or a master, there are always new topics waiting for you to explore. leetcode.com -문제 내용 : 주어진 숫자의 2진수형 보수를 출력하라 -접근 방법 10진수의 수를 2진수로 바꾼다 2진수의 수에 11111 이런식으로된 이진수와 XOR를 처리한다 1번의 경우는 내장함수로 변환이 어렵지 않다. 혹시 숫자로 꼭 해야한다면 10진수 들어온..

Remove Covered Intervals
Problem Solving 2020. 10. 4. 21:56

Remove Covered Intervals Remove Covered Intervals - 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 - 문제 내용 : [min,max]의 배열로 된 2중 Array를 줄경우 [min,max]내에 존재하는 타 [min', max'] Array를 삭제 하라 - 접근 방법 Greedy 알고리즘을 사용해서 접근하면 되는데, sorting 문제라고 생각하면 된다. min이 가장 작은 순서대로 sorting을 하는데, 만약 min이 ..

Maximum Number of Visible Points
Problem Solving 2020. 10. 4. 21:17

Maximum Number of Visible Points Maximum Number of Visible Points - 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 - 문제 내용 : 주어진 x,y 포인트에서 주어진 angle 만큼의 view 범위를 주었을 때, 해당 View범위에 담아 둘수 있는 목표 포인트의 최대 갯수는? - 접근 방법 주어진 모든 포인트를 대상으로 각도를 만들어내고 Sorting 후 Window Sliding을 통해서 최대 포인트 갯수를 ..