본문 바로가기
반응형

분류 전체보기147

[Python] 코딩테스트용 입력함수 구현 Python에서는 input() 함수를 통해 한 줄씩 입력 받는다. 한 줄을 통째로 입력 받으므로 쪼갤 필요가 있을 때는 split() 함수를 사용한다. 그리고 입력받은 결과는 string 타입이기 때문에 정수로 변환하기 위해서는 int()로 캐스팅 한다. 1. 숫자 하나를 입력 받기 ex) 5 a = int(input()) 2. 한 줄에 여러개의 숫자를 입력 받기 ex) 3 5 a, b = map(int, input().split()) 3. 리스트를 통해 한 줄에 있는 숫자를 배열로 저장하기 ex) 1 2 3 4 5 6 7 num = list(map(int, input().split())) 4. 한 줄의 문자열 여러 개 입력받기 ex) abc def a, b = input().split() 5. 문자열.. 2024. 3. 16.
[Python] 리스트 컴프리헨션을 사용해 리스트 초기화 하는 법 리스트 컴프리헨션은 리스트를 초기화 하는 방법 중 하나이다. 이를 이용하면 대괄호에 조건문과 반복문을 사용해서 리스트를 초기화 할 수 있다. 간단히 0부터 19까지의 수 중에서 홀수만 포함하는 리스트를 만들어보자. # 0 ~ 19까지의 수 중에서 홀수만 포함하는 리스트를 구하시오. # 1. 리스트 컴프리헨션으로 구현 array = [i for i in range(20) if i % 2 == 1] print(array) # 2. 일반 구현 array = [] for i in range(20): if i % 2 == 1: array.append(i) print(array) 결과 : [1, 3, 5, 7, 9, 11, 13, 15, 17, 19] 이번에는 1부터 9까지의 수 중에서 제곱 값을 포함하는 리스트를.. 2023. 12. 16.
[Python] 입력받은 문자열을 숫자로 변환하기 파이썬의 입력은 java나 c와 비교했을 때 정말 간단하다. 그냥 input("입력> ")를 사용하면 된다. string = input("입력> ") print(string) 입력> 안녕하세요 안녕하세요 하지만, 문제가 있는데 입력받은 것은 무조건 문자열로 취급한다. 정수나 실수를 입력해도 무조건 string type이 되버린다. 따라서 그 값을 사용하기 위해서는 변환을 해서 사용해야 한다. * 캐스팅(문자열 -> 숫자) 함수 설명 int() 문자열을 int 자료형으로 변환한다. float() 문자열을 float 자료형으로 변환한다. a = int(input("첫번째 숫자>")) b = int(input("두번째 숫자>")) print("a + b = ", a+b) 첫번째 숫자>2 두번째 숫자>3 a +.. 2023. 10. 29.
[Python] 제곱 연산자 파이썬에서는 숫자의 제곱을 아래와 같이 연산자로 간단하게 표현할 수 있다. # ** # 2의 세제곱을 표현 print(2 ** 3) ※ Java에서 Math.pow(double, double)이라는 별도의 함수를 사용해야 하는 것에 비교하면 엄청 편리해졌다. 2023. 10. 29.
[Android] OkHttp로 Whisper api의 STT(Speech-to-text) 구현하기 OpenAi사의 whisper api를 사용하는 android sample app을 만들고 있는데 http 통신으로 요청을 하고 응답을 받아야 한다. 기존에 android에서 HTTP client를 구현할 때 HttpURLConnection이나 Apache HTTP Client를 사용했다. 다만 이 방법들은 AsyncTask나 background thread 안에 많은 복잡한 정해진 코드들을 구성해야 하는 단점이 있었다. 그런데 이번에 OkHttp를 사용해서 구현을 해보니 훨씬 간편하게 구현을 할 수가 있었다. 공식 사이트 : square.github.io/okhttp 깃허브 : github.com/square/okhttp OkHttp 구현 먼저 android의 build gradle의 dependenc.. 2023. 10. 21.
[Android] 앱 버전 관리하기 안드로이드용 앱 개발을 하다보면 버전 관리를 해야 한다. 그렇지 않으면 잘못된 버전을 전달할 수도 있고, 이미 수정을 해놓고 문제있는 버전을 전달할 수도 있다. 안드로이드 앱의 버저닝(Versioning)은 시맨틱 버저닝(Semantic Versioning) 방식을 주로 따른다. 1. 기존 버전과 호환되지 않게 큰 기능이 추가 되었으면 MAJOR 버전을 올린다. 2. 기존 버전과 호환되면서 새 기능이 추가 되었으면 MINOR 버전을 올린다. 3. 기존 버전과 호환되면서 버그를 수정한 것이라면 PATCH 버전을 올린다. Android에서는 versionCode와 versionName이 있다. versionCode는 Google Play Store에서 apk 버전의 업데이트를 알리는 용도로 사용한다. 즉, .. 2023. 10. 14.
[Android] LinearLayout을 사용해서 화면을 일정 비율로 3등분하기 Sample app을 만들고 있는데 화면을 3등분 하려고 한다. 정확히 동일한 가중치로 나누지는 않고 중간에 본문은 좀 많이 할당을 하고, 상단과 하단은 조금 적게 할당을 하고 싶었다. 비율로 따지자면 1:3:1 정도? LinearLayout에 weightSum을 사용하면 된다. 나는 LinearLayout 안에 LinearLayout을 추가해서 layout_weight를 사용했다. 전체 LinearLayout에 weightSum = 500을 주고 그 밑으로 layout_weight = 100, 300, 100을 주면 된다. 전체 코드를 보면 결과 화면은 다음과 같다. 2023. 10. 14.
[Android] webView 사용하기 최근들어 실무에서 안드로이드 앱을 사용할 일(샘플앱을 구현해서 feasibility 확인)이 많아져서 차근차근 살펴보고 있는데 드디어 webView가 나왔다. 이런저런 상황에서 언제나 webView로 화면을 띄운다는 등 말들이 나와서 궁금했던 차에 잘 되었다 싶었다. 그냥 activity_main.xml에서 만 설정해 주면 되는 것이었다. 이렇게 간단하다고? 진작에 앱 공부 좀 해놓을 것을 그랬다. 1. activity_main.xml WebView 항목을 추가해준다. 2. MainActivity.java package com.example.webviewexample; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; i.. 2023. 10. 2.
[Android] webView 사용 시 ERR_CLEARTEXT_NOT_PERMITTED 에러 앱에서 webView를 사용해서 네이버를 띄우는 간단한 프로그램인데 에러가 발생했다. 찾아보니 안드로이드 Pie 버전 이상부터 보안이 강화가 되면서 발생한 문제였다. 지금 내가 AVD에 사용한 것이 api 31이니 해당이 되는 문제였음. 검색해보니 여러가지 해결방법이 있었으나 그 중 가장 간단한 것으로 적용해봄. * AndroidManifest.xml에 usesCleartextTraffic 속성 추가 android:usesCleartextTraffic="true" ... 2023. 10. 2.
반응형