전체 글

꾸준하게
개발

[안드로이드] Retrofit 연결하기

implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:2.9.0' implementation 'com.squareup.okhttp3:okhttp:3.8.0' implementation 'com.squareup.okhttp3:logging-interceptor:3.11.0' 첫번째는 레트로핏 통신을 위해 필수적이고 두번째는 통신 결과를 json형태로 보기위해 선택적으로 추가 한 것입니다.. 세, 네번째는 로그에 찍히도록 하기 위해 추가해주었습니다. 자신의 baseUrl 위쪽에 먼저 적어 둡니다. public class RetrofitClient { private st..

에러

플레이 스토어 앱 등록 거부/ 유튜브 백그라운드 실행

며칠 전 플레이 스토어에 앱을 등록하고 검토 중에 있었다. 그런데 오늘 위 사진과 같은 이메일이 왔다. 구글링을 해보니 아마 웹뷰에서 유튜브를 틀었을 때 백그라운드에서 유튜브가 재생되는 부분이 문제 인 듯 하다. 유튜브 프리미엄, 유튜브 광고, 애드몹 여러 가지 수익모델을 이용하여 악용하는 것을 철저히 구글에서 검토하고 있다. 내 경우는 webView 부분을 고쳐봤다. 먼저 파일에 코드를 추가 하고 webView 가 있는 소스코드에 아래를 추가한다. @Override public void onPause() { super.onPause(); try { Class.forName("android.webkit.WebView") .getMethod("onPause", (Class[]) null) .invoke(w..

에러

플레이 스토어 앱 등록 거부/ 유튜브 백그라운드 실행

며칠 전 플레이 스토어에 앱을 등록하고 검토 중에 있었다. 그런데 오늘 위 사진과 같은 이메일이 왔다. 구글링을 해보니 아마 웹뷰에서 유튜브를 틀었을 때 백그라운드에서 유튜브가 재생되는 부분이 문제 인 듯 하다. 유튜브 프리미엄, 유튜브 광고, 애드몹 여러 가지 수익모델을 이용하여 악용하는 것을 철저히 구글에서 검토하고 있다. 내 경우는 webView 부분을 고쳐봤다. 먼저 파일에 코드를 추가 하고 webView 가 있는 소스코드에 아래를 추가한다. @Override public void onPause() { super.onPause(); webView.onPause(); } 그러면 webView를 보다가 앱을 화면에서 껐을 때 webView도 일시정지 되므로 그 안에서 재생 중이던 유튜브도 정지 된다...

에러

안드로이드 스튜디오 프로젝트 GitHub에 연동/올리는 방법

일반적으로 깃허브에 소스코드를 올릴 때는 터미널로 설정을 했었는데 안드로이드 스튜디오에서는 그럴 필요없이 간편하게 내부에서 올릴 수 있다. 그럼 안드로이드 스튜디오 프로젝트를 GitHub에 올리는 방법을 알아보자 [VCS] -> [Import into Version Control] -> [Create Git Repository...] 순서대로 선택 한다. 그럼 이렇게 선택 파일이 뜬다. 그냥 Open 버튼을 눌러준다. Yes 버튼을 눌러준다. 그럼 이렇게 파일들이 빨강색으로 변하게 된다. 깃 저장소에 파일을 추가하면 초록색으로 변할 것이다. 그럼 이제 안드로이드 스튜디오와 GitHub를 연동해보자 [Preferences..] 를 선택한다. ( 아마 window 운영체제 에서는 Settings를 눌러야 되..

개발

[앱 개발 리뷰] 안드로이드 로또 앱 만들기 과정/소개 #1<오늘은 로또왕>

나만의 앱을 만들고 싶어서 고민을 하다 유입성도 좋고 1인 개발로 하기 쉬운 로또 앱을 선택했다. 플레이 스토어에서 로또 앱들 구경을 해보니 퀄리티 높은 앱들이 많았다. 그래서 디자인쪽으로 컨셉을 잘 잡자라고 생각 하여 귀엽고 깔끔한 인터페이스를 중점으로 만드려고 했다!! 아래 bottomNavigationView로 화면 전환을 할 수 있도록 하였다. 그리고 화면 전환 부분은 Activity로 각 개별 화면을 만드는 것이 아니라 Fragment로 Activity위에 띄우는 식으로 했다. listView 보단 recyclerView를 이용하는게 좋다길래 (책에서) 더 복잡하지만 해당 방식으로 했다. 기존 다른 로또 앱들 보면 리스트에 아무 항목도 없을 때 텍스트 뷰를 띄우길래 어떻게 해야될까 고민 했는데 ..

알고리즘

<백 준> 1149번 파이썬 알고리즘

-다이나믹 알고리즘 n = int(input()) # 행 m = 3 # 열 d = [] # 그래프 만들기 for i in range(n): d.append(list(map(int,input().split()))) for i in range(1, n): for j in range(m): if j == 0: d[i][j] = d[i][j] + min(d[i - 1][j + 1], d[i - 1][j + 2]) if j == 1: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j + 1]) if j == 2: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j - 2]) print(min(d[n-1][0],d[n-1][1],d..

알고리즘

<백 준> 1149번 파이썬 알고리즘

- 다이나믹 알고리즘 n = int(input()) # 행 m = 3 # 열 d = [] # 그래프 만들기 for i in range(n): d.append(list(map(int,input().split()))) for i in range(1, n): for j in range(m): if j == 0: d[i][j] = d[i][j] + min(d[i - 1][j + 1], d[i - 1][j + 2]) if j == 1: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j + 1]) if j == 2: d[i][j] = d[i][j] + min(d[i - 1][j - 1], d[i - 1][j - 2]) print(min(d[n-1][0],d[n-1][1],..

알고리즘

<백 준> 11726번 파이썬 알고리즘

- 다이나믹 알고리즘 n = int(input()) d = [1, 2] for i in range(2, n): d.append(d[i-1]+d[i-2]) print(d[n-1] % 10007) 9095번에서 푼 풀이방식과 유사한 것 같아서 해보니까 아래와 같이 값이 맞아 떨어졌다 위의 방식을 기반으로 알고리즘을 구현했다 www.acmicpc.net/problem/11726 11726번: 2×n 타일링 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. www.acmicpc.net

알고리즘

<백 준> 1003번 파이썬 알고리즘

- 다이나믹 알고리즘 tc = int(input()) d = [] for i in range(tc): d.append(int(input())) arr0 = [1,0,1] # 0 1 2 ## 0 개수 arr1 = [0,1,1] # 0 1 2 ## 1 개수 for i in range(3, 41): arr0.append(arr0[i-1]+ arr0[i-2]) arr1.append(arr1[i-1]+ arr1[i-2]) for j in range(len(d)): print(arr0[d[j]], end=" ") print(arr1[d[j]]) www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. ..

알고리즘

<백준> 7576번 파이썬 알고리즘

www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net from collections import deque m, n = map(int,input().split()) array = [] for i in range(n): array.append(list(map(int,input().split()))) dx = [-1, 1, 0, 0] dy = [0, 0, -1, 1] def bfs(): while queue: x, y = queue.popleft() ..

changha.
꾸준하게