분류 전체보기
![가장 긴 증가하는 부분 수열 2 [백준 12015] - python](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fq8hNg%2FbtrmPQoJkTg%2FOEKIX3F9oCCeCpkUq0Sv5K%2Fimg.png)
가장 긴 증가하는 부분 수열 2 [백준 12015] - python
결국 풀지 못했다. 다음번에 틀리지 않기 위해 기록해두자! 설명이 정말 잘되어 있는 블로그를 찾았다. 해당 블로그를 보고 이해한 내용을 정리해두자! 정답코드 먼저 살펴봅시다 import sys from bisect import bisect_left def find(target): start, end = 1, len(dist) - 1 while start target : end = mid else : start = end = mid return end n = int(input()) array = list(map(int, sys.stdin.readl..
![Ios html5 Geolocation 웹뷰 적용](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FpOY00%2FbtrmK0di9eG%2FaHn8WX6mKazfVOtG1mEXK0%2Fimg.png)
Ios html5 Geolocation 웹뷰 적용
ios에서 html5 geolocation 기능을 사용하여 현재위치를 가져오는 방법입니다. 안드로이드에 대한 설명은 아래의 링크에서 참고하실수 있습니다. https://dkrnfls.tistory.com/87 html5 Geolocation 웹뷰 적용 웹의 api중 geolocation api가 있습니다. http에서는 사용이 불가능하고 https에서만 사용이 가능합니다. 따라서 테스트 할때도 ngrok으로 세팅을 하는등 별도의 툴을 이용해야 합니다. ngrok으로 로컬서버 dkrnfls.tistory.com ios 웹뷰에서 html5 geolocation 을 사용하기 위해서 현재 위치를 가져오는 것에대한 권한을 승인해주어야 합니다. ios는 안드로이드에 비해 훨씬 간단합니다. 바로 본론으로 들어갈게요 ..
![Android html5 Geolocation 웹뷰 적용](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbxG4t4%2FbtrmFpZY95S%2FtTp4fQzeXh35kdQ6LB5wO0%2Fimg.png)
Android html5 Geolocation 웹뷰 적용
웹 api중 geolocation api가 있습니다. http에서는 사용이 불가능하고 https에서만 사용이 가능합니다. 따라서 테스트 할때도 ngrok으로 세팅을 하는등 별도의 툴을 이용해야 합니다. ngrok으로 로컬서버를 개방 하는법은 따로 포스팅 할 수 있도록 할게요 아래 첨부 링크는 웹에서 geolocation 에 관한 링크 입니다 https://developer.mozilla.org/ko/docs/Web/API/Geolocation_API/Using_the_Geolocation_API Geolocation API 사용하기 - Web API | MDN Geolocation API는 navigator.geolocation 객체를 통해 사용할 수 있습니다. developer.mozilla.org 웹..
![팩토리얼 0의 개수[백준1676] - python](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FlySnJ%2FbtrmALnVdVx%2FYCwg0BLi7k5p7SRx2dHYm1%2Fimg.png)
팩토리얼 0의 개수[백준1676] - python
정답 코드 먼저 살펴보자 import sys n = int(sys.stdin.readline()) two_count = 0 five_count = 0 two = 2 while two
![합분해[백준 2225] - python](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FQRoDM%2Fbtrmxh8OlT2%2FVKs0zvIJipwOpYh5a21DM0%2Fimg.png)
합분해[백준 2225] - python
기본적인 다이나믹 프로그래밍이다. 배열을 그리고 초반 몇개를 직접 시도해보면 규칙이 보일거다 정답 코드 먼저 보자 n, k = map(int, input().split()) dp = [[0] * (k+1) for _ in range(n+1)] dp[0][0] = 1 for i in range(0, n+1) : for j in range(1, k+1) : dp[i][j] = dp[i-1][j] + dp[i][j-1] print(dp[n][k] % 1000000000) k = 1 인경우 모든 숫자는 1이다. k = 2 인경우 모든 숫자는 (n+1)을 가진다. n=2: (0,2)(1,1)(2,0) n=3: (0,3)(1,2)(2,1)(3,0) n=4: (0,4)(1,3)(2,2)(3,1)(4,0) k= 3 인..
![2로 몇 번 나누어질까[백준 1407] - python](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FI1Cm0%2FbtrmziMW8MW%2FfPELHr2PpnVJNXP9Jh0Ln1%2Fimg.png)
2로 몇 번 나누어질까[백준 1407] - python
이 문제는 크로아티에서 고등학생 대상으로 나온 문제다. 상당히 애를 먹었던 문제다.(아직 멀었나 보다) 코드 먼저 살펴보자 a,b = map(int, input().split()) def calc(number) : if number == 0 : return 0 elif number == 1 : return 1 elif number % 2 == 0 : return number // 2 + 2 * calc(number // 2) elif number % 2 == 1 : return number // 2 + 2 * calc(number // 2) + 1 print(calc(b) - calc(a-1)) 애를 먹었던 거에 비해서는 굉장히 간단하다. 규칙만 잘 찾으면 절대 어렵지 않은 문제다. 그 규칙에 대해서 아..
![NestJs Request LifeCycle](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FRck7M%2Fbtrmmdk1Qaq%2FzEhRZiGdTbQ0evzM7LblSK%2Fimg.png)
NestJs Request LifeCycle
Nest Request LifeCycle Nest에서 request가 오고 나서 부터 response를 주기까지의 lifecycle에 관한 글입니다. 사용자 인증이나 parameter의 검증 등 필요한 메소드들을 적절한 단계에서 사용하면 앱은 더욱 견고해 질것입니다. Middleware, Guard, Interceptor, Pipe에 대한 지식이 선행되어 있으면 더욱 좋습니다. 먼저 큰 틀에서 보면 MiddleWare -> Guard -> Interceptor -> Pipe -> Controller -> Interceptor 입니다. 아래의 그림에서는 guard에서 부터 예외 상황이 발생할시에는 @useCatch로 exception filter에서 처리할 수 있습니다. exception filter를 g..
Android 화면 Resizing with windowSoftInputMode
webview 화면 resizing 웹뷰에서 키보드가 하단에서 올라오게 되면 위의 화면은 키보드로 가려져서 화면이 줄어듭니다. 이때 화면을 스크롤 하거나 줄이거나, 줄여지지 않는 방법을 알아보겠습니다. // AndroidManifest.xml windowSoftInputMode에서 옵션을 주어서 제어할 수 있습니다. stateOption과 adjustOption을 하나씩 사용하거나 둘중 하나만 사용합니다. 두 그룹중 어느 하나의 그룹을 복수개 사용하면 정의되지 않은 결과를 가져올 수 있습니다. example 사용하는 알맞은 예시입니다 android:windowSoftInputMode="adjustResize|stateVisible" 아래의 코드는 정의되지 않은 결과를 가져올 수 있습니다 android:w..
![플로이드 워셜 알고리즘](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbpS9xq%2Fbtrmjanx9xm%2FsFpQbhqV3fU6L1kFL0TWw0%2Fimg.png)
플로이드 워셜 알고리즘
플로이드 워셜 알고리즘은 '모든 정점간에 최단거리를 구하는 알고리즘' 입니다. 시간 복잡도는 O(n^3)이다. 두개의 정점과 정점을 거치는 중간점 총 3개를 모두 탐색해야 합니다. 핵심은 거쳐가는 정점을 기준으로 최단거리를 알아내는 것입니다 다익스트라 알고리즘은 한 정점에서 다른 모든 정점으로의 최단거리를 구하는 문제 입니다. 다익스트라 알고리즘 플로이드 워셜 알고리즘 한 정점에서 다른 모든 정점으로의 최단 거리 구하는 알고리즘 모든 정점에서 모든 정점으로의 최단거리 구하는 문제 코드 먼저 살펴보겠습니다 v, e = map(int, input().split()) INF = 10000000 dist = [INF * (v+1) for _ in range(v+1)] # 입력받은 간선들에 대한 정보로 거리정보 ..
![가다듬기(일상을 깨지 않고 인생을 바꾸는 법)](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcbA1JO%2FbtrmrvcQynS%2FdKWu0rLhPmCZKwJWS23qd1%2Fimg.jpg)
가다듬기(일상을 깨지 않고 인생을 바꾸는 법)
- 지금, 이곳에 집중할 것 눈앞의 일에 집중하자. '나'라는 사람은 눈앞에 펼쳐지는 풍경과 이어진다. 일할 때는 일에, 요리할 땐 요리에, 청소를 한다면 청소에, 누군가를 만난다면 만남의 시간에, 온전히 의식을 집중하자 눈앞에 펼쳐진 풍경은 지금 이곳밖에 없다. 무엇이 보이는가, 어떻게 느끼는가. 그것이 지금 나와 이어지는 세계다. - 마음껏 흔들리자, 그 다음이 관건이다 마음이 흔들리면 문득 나의 역량이 부족한 탓이라는 생각이 들 때가 있다. 내가 단단하고 빈틈없는 사람이라면 갈피를 잡지 못하고 이리저리 흔들리지 않을 거라고 여기는 것이다. 그러나 흔들리지 않는다고 마냥 좋을까? 그렇지는 않을 것이다. 흔들리는 것은 섬세하다는 방증이기도 하다. 섬세하면 사소한 일에도 깨달음을 얻지만, 동시에 마음이 ..