Jump Game II
Problem Solving 2021. 8. 30. 22:48

Jump Game II 문제 내용 주어진 숫자 Array가 있다. 해당 Array index 0에서 출발한다고 할때, Jump가 가능한 범위는 arr[i]라고 할 수 있다. 예를 들어 arr[0]이 3이면 arr[1], arr[2], arr[3]으로 자리를 옮길 수 있게 된다. Array의 마지막 Index까지 갈수 있는 최소의 Jump 횟수를 구하시오. 접근 방법 DP를 이용해서 문제를 풀면 된다. 그런데 이렇게 간단히 최적화 되는 문제가 아니다 보니 글을 남기게 되었다. DP로 접근하고 이후 Greedy로 접근해 보겠다. DP 접근 다음과 같은 문제가 주어졌다고 생각해 보겠다. dp는 현재 index에서 마지막 index 7인 '2'까지 최소한의 jump를 기록 한다고 정의하자. 뒤에서 부터 접근해 ..

Android CTS/GTS UnofficialApisUsageTest 비 인터페이스 제한 대응
Android 2021. 8. 24. 22:16

이슈 내용 Android를 이용한 Hidden API 및 Refection을 활용한 Access가 제한되어있는 API를 통한 개발이 Android 9에서 부터 적용되었다. https://developer.android.com/guide/app-compatibility/restrictions-non-sdk-interfaces Android APP을 개발하고 App Store 검증을 받을 때, restriction에 걸리면 릴리즈가 제한된다. Hidden API 확인 방법 그리고 제한되는 API는 점점 많아지고 있다. 위의 URL을 들어가면 확인 가능하다. hiddenapi-flags.csv 예를 들자면 Landroid/view/autofill/AutofillManager;->mServiceClientCle..

Web Component 상태관리 만들기 (Vanillajs)
Web 2021. 8. 22. 23:41

Web Component를 통해서 Vanillajs 기반 웹서비스를 만드는 방법을 배웠다. 2021.08.16 - [Web] - 기존 web site를 components 로 다시 만들기 (No State management) 이제 Statement를 통해서 Component를 관리 하는 방법을 알아보고자 한다. 본 내용은 위의 링크 내용의 연장이다. 관련 내용을 더 이야기 하기 전에 MVVM이란 무었인지 꼭 이해하길 바란다. 2021.08.20 - [Web] - MVC, MVP, MVVM 패턴의 이해 가장 유명한 Statement 관리 library는 redux이다. redux를 통해 어떤식으로 Statement가 관리 되는지 알아보자. https://redux.js.org/tutorials/funda..

MVC, MVP, MVVM 패턴의 이해
Web 2021. 8. 20. 17:24

MVVM 패턴이란? MVVM을 이해하기 위해서는 MVC -> MVP -> MVVM 순서대로 아키텍처 패턴에 대한 이해가 필요하다. MVC 패턴 https://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller 가장 많이 사용되는 패턴으로 Spring MVC라는 Back-end framework이름이 있을 정도로 많이 사용된다고 생각하면 된다. 사용자가 controller(Action)를 통해서 Model을 변화시키면 View가 Update되게 된다. Business Logic이 Controller에 있을 수 있고 또한 View에도 있을 수 있다. Model에 있는게 사실 정석이지만 말이다. Business Layer를 Model이라고 부른다. 하지만..

Sparse Matrix Multiplication
Problem Solving 2021. 8. 17. 23:53

Sparse Matrix Multiplication 문제 내용 Matrix Dot(곱)을 연산 하시오 접근 방법 기본적인 수학 문제이다. 그런데 의외로 이런 문제를 코드로 변환 시키려고 보면 머리가 멈춘다. 아... 진짜 그냥 바보같다. 아무튼 다음과 같은 접근 방식으로 풀었다. A 배열을 arows * acols, B배열을 brows * bcols 라고 명명할 수 있다. acols와 brows의 크기가 같아야 곱셈이 가능하다 결과 배열은 arows * bcols가 된다. 위의 3가지를 이용해서 문제를 접근했는데, 기본적인 loop를 어떻게 돌것이냐? 가 가장 중요한 첫번째 step이다. A배열을 loop 시킬까? 아니면 B배열을 loop 시킬까? 결론은 Result 배열인 arow * bcols를 lo..

기존 web site를 components 로 다시 만들기 (No State management)
Web 2021. 8. 16. 21:55

Web Components가 무었인지에 대해서는 2021.08.14 - [Web] - Web component (Custom Elements, Shadow DOM, Template) 2021.08.14 - [Web] - Web Components Callback Methods & lifecycle 2021.08.14 - [Web] - Web Component Event Dispatching 하기 이 3개를 반듯이 이해 해야한다. 이것을 이해했다는 전제로 기존에 만들어진 Site를 어떻게 Web components화 하는지에 대해서 글을 쓰고자 한다. 여기있는 소스는 다음 Repository의 Source를 기반으로 했다. https://github.com/andy-piccalilli/vanilla-js-..

Web Component Event Dispatching 하기
Web 2021. 8. 15. 15:44

앞서 만든 Web Component로 부터 이벤트에 따른 변화를 알아야 한다면 어떻게 해야 할까? 가련 버튼을 클릭한 이벤트의 횟수를 외부에서 알아야 한다면? 두가지 방법이 있다. get 을 이용해서 public value를 알아 내는 방법 get timesClicked(){ return this.timesClicked; } 또 하나는 Event를 통해서 업데이트 된 Data를 알아내는 방법이다. 여기서 두번째 방법에 대해서 알아보고자 한다. Event Button component 설계 html tag에서 onchange라고 하는 event를 등록하면 event를 수신받을 수 있도록 만들어 준다. Event Button component 개발 export default class EventButton ..

Web Components Slot 사용하기
Web 2021. 8. 15. 14:30

내가 만든 webcomponent 사이에, 사용자 html tag가 customizing 되어 적용되게 하는 방법을 알아보자. 2021.08.15 - [Web] - Web Component publish 공개 하기 Web Component publish 공개 하기 2021.08.14 - [Web] - Web component (Custom Elements, Shadow DOM, Template) 2021.08.14 - [Web] - Web Components Callback Methods & lifecycle 앞서서 Web Component를 만드는 방법에 대해서 알아 보았다... enumclass.tistory.com Slot이 필요한 이유는? 앞서 작성한 html의 Component 사용 형상은 아래..

Web Component publish 공개 하기
Web 2021. 8. 15. 14:10

2021.08.14 - [Web] - Web component (Custom Elements, Shadow DOM, Template) 2021.08.14 - [Web] - Web Components Callback Methods & lifecycle 앞서서 Web Component를 만드는 방법에 대해서 알아 보았다. 간단한 Web Component를 만들고 공개하는 방법에 대해서 알아보자. Profile information Component Design Component 명은 profile-info이고 이름, 소속, 사번, 이미지, 그리고 고용형태를 표현한다. 고용형태는 ft = fulltime, pt = parttime, ct ? 로 나누어서 색을 바꿈으로써 표현을 달리한다. web componen..