전체 글 37

[codility] 풀어보기 - PermMissingElem

Lesson 3-2 - PermMissingElem내용 :Find the missing element in a given permutation시간 복잡도 : O(N) 성공 했지만 민망해서 공개 안하는 코드 : function isZero(element) { return element == 1; } function solution(A) { // write your code in JavaScript (Node.js 6.4.0) let rt_arr=new Array(A.length+1); rt_arr.fill(1); for(i in A) { rt_arr[A[i]-1]=0; } //console.log(rt_arr.findIndex(isZero)+1); return rt_arr.findIndex(isZero)+..

알고리즘 2017.09.26

[codility] 풀어보기 - FrogJmp

Lesson 3-1 - FrogJmp내용 :Count minimal number of jumps from position X to Y.시간 복잡도 : O(1) 성공한 코드 :function solution(X, Y, D) { // write your code in JavaScript (Node.js 6.4.0) let rt_val = (Y-X)/D; return Math.ceil(rt_val); } 결론 : 요것도 좀 쉬운듯쉬워도 댓글 보면서 다른 방법에 대한 고민 필요댓글 살펴보다 든 생각:과연 잘 짠 소스랑 무엇일까?rt_val = (Y-X)/D; return Math.ceil(rt_val);return (Y-X) % D > 0 ? (Y-X)/D+1 : (Y-X)/D;Y = JD + X, JD = -..

알고리즘 2017.09.21

[codility] 풀어보기 - OddOccurencesInArray

Lesson 2-1 - OddOccurencesInArray내용 :Find value that occures in odd number of elements.시간 복잡도 : O(n) 성공한 코드 : function solution(A) { let rt = 0; for(i in A) { rt = rt ^ A[i]; } return rt; } 실패한 코드 :function solution(A) { let sort_A = A.sort();let rt = 0;for(i in sort_A) {if(i==0 || sort_A[i] != sort_A[i-1] && sort_A[i] == sort_A[i+1]){rt = sort_A[i];}}}return rt; 결론 : 아는게 힘간단한 코드라도 좀 더 신중하게알고리즘 ..

알고리즘 2017.09.15

[codility] 풀어보기 - BinaryGap

알고리즘 공부할 자료를 찾다보니애증의 codility 에서 연습문제를 주는 것을 발견 !!!!가능한 하루에 하나씩 풀어보기로 했다. 오늘은 첫 발 시작이 반 Lesson 1 - BinaryGap내용 : find longest sequence of zeros in binary representation of an integer.시간 복잡도 : logn 내 코드 : function solution(N) { // write your code in JavaScript (Node.js 6.4.0) let b_str = N.toString(2); let gap_pattern = /1[0]+(?=1)/g; let zero_pattern = /[0]/g; let match_arr = b_str.match(gap_pat..

알고리즘 2017.09.07

[기초내용] 시간 복잡도(Time complexity)

자료 구조와 알고리즘 관련 내용을 정리하고 봐야 할 경우가 자주 생기고무시하고 갈 수 없는 상황이라구글 검색을 바탕으로 옛 기억을 꺼내 보고자 한다. 알고리즘의 기초만 정리하자면시간복잡도 - CPU 사용량에 대한 계산공간복잡도 - RAM 사용량에 대한 계산여러가지 표기법이 있지만 빅오 표기법이 가장 많이 사용계산법이 중요 , cpu 의 실제 실행 시간이 아닌 실행 횟수를 계산계산법은 간다하게 명령어의 실행 횟수를 계산해서 최고차항을 이용O(n), O(logn) , O(n2) .... 등등으로 표기지루하고 자세한건 위키백과 에서 확인 가능하다. 내가 볼때 중요한 것은 O(logn) 이다. 온라인 코딩 테스트도 이부분을 많이 물어보는 듯 하다.logn은 로그형 시간으로 시간이 지남에 따라 연산이 줄어드는 것..

알고리즘 2017.08.24

react-native 앱 개발 이야기 No.3 - React Native 시작

React Native(이하 RN)의 개발환경 구축이 끝났다면 이제 본격적으로 RN을 설치 해야 한다. ( mac os 기준으로만 정리 , 아직도 설치가 조금 남아 있다.)1. Homebrew를 설치해야 한다. 설치 방법은 https://brew.sh/index_ko.html 에서 확인2. nodejs , watchman 등 을 설치하고 나면 기본은 끝이난다. 3. 여기서 부터는 RN 홈페이지 를 따라가면 된다.4. 그리고 react-native-cli 까지 설치가 완료 되었다면5. 이제 대망의 react-native init AwesomeProjectcd AwesomeProjectreact-native run-ios여기 까지 왔다면 앱 개발을 위한 기본의 기본은 완료 되었다고 본다. 시작이 반이라고 하..

앱개발 2017.06.21

react-native 앱 개발 이야기 No.2 - 갈등 그리고 개발환경

최근 다른일로 바쁘기도 하고 공,사적인 다양한 이유로 React-native(이하 RN) 개발에 대해 갈등이 많았다.가장 큰 갈등은 RN으로 앱을 만드는 것이 적절한지에 대한 의문이다.물론 RN은 웹개발자가 앱 개발을 하기 위한 최선은 아니라도, 가장 빠른 방법의 차선은 된다고 생각한다.그러나 앱의 질적인 부분을 생각하면 "과연???" 이라는 의문이 계속 쫓아 다닌다. 그래서 도달한 결론은 업무에서의 사용은 일단 미루기로 했다.회사에서는 앱개발자들을 성장시키고 추후 상황을 보면서 다시 논의하기로 결정했다. 그렇지만 개인프로젝트는 작고 쉽고 빠르게 만드는 것이 컨셉이라 계속 사용해보기로 했다. 서론이 길었지만 개인 프로젝트를 다시 시작하기로 했고 그래서 맥북에 개발환경을 만들면서 했던 일들을 정리해 본다...

앱개발 2017.06.18

react-native 앱 개발 이야기 No.1 - 서론

자의반 타의반으로 새로운 서비스를 담당하게 되면서 자의반 타의반으로 앱개발을 담당하게 되었다. 자세한 사정이야 여러가지가 있지만 지금 보니 결국은 내가 그런 상황으로 만든게 아닌가 하는 생각이 든다. 서비스를 오픈하고 잠시 유지보수 기간이라 이제까지의 작업을 블로그에 정리하기로 마음을 먹었다. 끝까지 할 수 있을지 조금 걱정이긴 하지만.... 어쨌든 서비스가 단순하다 보니 나에게 주어진 시간이 그렇게 많진 않았고 aos/ios 모두를 작업해야 하는 상황이다 보니 하이브리드 앱 개발을 고려하게 되었다.cordova 와 react-native를 두고 고민하던 중 최신이기도 하고 페이스북을 믿어 보자는 생각에 react-native를 선택했다. react-native를 선택하게 이유는일단 페이스북이 만들었음친..

앱개발 2017.03.16

애플 AppStore에 앱 올리기 - 2편

내 블로그인 관계로 내 경험을 기준으로 앱스토어 심사 거절 사례를 정리해 보려 한다.강제 업데이트안드로이드에서는 허용되는 강제 업데이트를 위한 앱 실행시의 업데이트 경고창을 사용 할 수 없다정확히는 앱을 사용하지 못하게 하는 환경을 만들면 안되는 듯 하다.게임에서는 강제업데이트를 많이 보는데.....그건 조금 다른 상황인듯....IPv6 환경에서의 동작Appstore 에 등록되는 모든 앱은 미래에 IPv4 를 사용하지 않는 환경에서도 정삭적으로 작동이 되도록 만들어야 한다 가 기본적이 내용이다.사실 처음보는 내용이라 그렇지 아래에 있는 기본적인 사항만 지키면 큰 문제는 안되는 듯 하다.모든 통신은 IP가 아닌 도메인은 사용한다.Low level Socket api을 자제외부 라이브러러 사용지 네트워크 관..

앱개발 2017.02.28