분류 전체보기143 [Algorithm/Kotlin] 백준 7568번 덩치: StringBuilder를 활용한 풀이법 덩치 등수 매기기 문제는 주어진 사람들의 키와 몸무게를 비교하여 각자의 상대적인 순위를 구하는 알고리즘 문제입니다. 이번 글에서는 문제를 두 가지 방식으로 해결하며, 효율성을 개선하기 위해 StringBuilder를 활용한 방식을 소개합니다. 문제 설명덩치 비교 기준사람의 덩치는 키와 몸무게 두 가지 값으로 표현됩니다. 예를 들어 (x, y)는 한 사람의 몸무게 x와 키 y를 나타냅니다. 두 사람 A와 B의 덩치 (x, y)와 (p, q)를 비교할 때:A의 덩치가 더 크다면: x > p 그리고 y > q를 만족해야 합니다.두 값 중 하나라도 크거나 같지 않으면 A와 B의 덩치는 비교할 수 없습니다.등수 계산주어진 N명의 사람들에 대해:자신보다 덩치가 더 큰 사람의 수를 구합니다.등수는 이 수에 1을 더한.. 2025. 1. 2. [Android/Kotlin] 비상 사운드 효과 구현: 강제 볼륨 조절 비상 상황에서 긴급 신고를 했을 때, 기기의 볼륨이 꺼져 있거나 낮게 설정되어 있는 경우에도 사운드 알림이 들릴 수 있도록 하는 기능이 필요했습니다. 처음에는 AudioManager.STREAM_ALARM 타입으로 설정되어 있어 강제로 볼륨을 올리는 기능이 제대로 작동하지 않았습니다. 하지만 이를 AudioManager.STREAM_MUSIC 타입으로 변경한 후 정상적으로 동작하게 되었고, 이 과정을 통해 얻은 구현 방법을 공유하고자 합니다.구현 코드아래 코드는 기기의 볼륨을 강제로 최대치로 설정하고 비상 사이렌 소리를 재생하는 방법을 보여줍니다.private fun emergencyEffect(isPlay: Boolean) { if (isPlay) { // AudioManager 시스.. 2024. 12. 13. [Algorithm/Kotlin] 백준 2562번 최댓값: withIndex 문법을 활용한 풀이법 이번 글에서는, 리스트의 최댓값을 구하고, 그 최댓값이 위치한 인덱스를 함께 찾는 두 가지 방식에 대해 정리 해 보겠습니다.특히, 최댓값 문제를 풀면서 알게되어 두 번째 방식에서 사용한 withIndex 문법에 대해 중점적으로 살펴보겠습니다.문제 정의9개의 정수를 입력받아 리스트에 저장한 뒤, 다음 두 가지를 출력하는 프로그램을 작성합니다:리스트의 최댓값최댓값이 위치한 인덱스(1부터 시작)풀이 방법 1: 간단한 라이브러리 함수 활용먼저, 코틀린의 내장 함수를 활용한 간단한 풀이 방법입니다.fun main(args: Array) { val br = BufferedReader(InputStreamReader(System.`in`)) val bw = BufferedWriter(OutputStream.. 2024. 12. 10. [Android/Kotlin] 뒤로가기 기능을 구현하는 방법: OnBackPressedDispatcher 활용법 안드로이드 개발을 하다 보면, 뒤로가기 버튼을 눌렀을 때 특정 동작을 처리해야 하는 경우가 자주 발생합니다.기존에는 onBackPressed 메서드를 오버라이드하여 이를 구현했지만, 안드로이드 12(API 31)부터 이 메서드가 Deprecated되었습니다. 대신 OnBackPressedDispatcher를 이용한 새로운 방식이 도입되었습니다.이번 글에서는 안드로이드에서 뒤로가기 기능을 구현하는 새로운 방법과 그 이유를 정리 해 두겠습니다. 왜 onBackPressed가 Deprecated되었을까?onBackPressed는 뒤로가기 버튼의 동작만을 단순히 처리하도록 설계된 메서드였습니다. 하지만 Fragment와 Lifecycle 기반 컴포넌트가 점차 중요해지면서 뒤로가기 이벤트를 더 유연하게 처리할 필.. 2024. 12. 3. [Android/Kotlin] Kakao Map V2: 특정 좌표를 모두 화면에 표시하기 Kakao Map V2에서는 지도에서 특정 좌표들이 모두 보이도록 카메라를 자동으로 이동 및 확대/축소할 수 있습니다.이를 위해 kakaoMap.moveCamera(CameraUpdateFactory.fitMapPoints()) 메서드를 활용할 수 있습니다.이번 글에서는 출발지와 도착지가 지도 화면에 동시에 보이도록 카메라를 설정하는 방법을 공유 하고자 합니다. 문제 상황처음 지도에 출발지와 도착지의 마커를 표시했을 때, 두 위치가 서로 멀리 떨어져 있으면 한 화면에 두 마커가 모두 나타나지 않는 문제가 있었습니다.이런 경우, 사용자는 출발지나 도착지 중 하나만 확인할 수 있어 불편함을 느낄 수 있습니다.이를 해결하기 위해 Kakao Map V2의 CameraUpdateFactory.fitMapPoint.. 2024. 12. 2. [Android/Kotlin] API Key 숨기기: buildConfigField 활용법 안드로이드 앱 개발에서는 API Key와 같은 민감한 정보를 소스 코드에 하드코딩하면 보안상 위험합니다.이러한 문제를 방지하기 위해 **buildConfigField**를 사용하여 API Key를 안전하게 관리해야 하지만, 매번 구현할 때마다 세부적인 과정을 잊어버리곤 했습니다. 그래서 이번 기회에 정리해 두고 필요할 때 빠르게 참고할 수 있도록 내용을 남깁니다. 1. 프로젝트 설정: local.properties에 API Key 저장하기프로젝트 루트 디렉토리의 local.properties 파일에 API Key를 추가합니다. 이 파일은 기본적으로 .gitignore에 포함되어 있어 Git 저장소에 업로드되지 않습니다.예시: local.propertiesKAKAO_NATIVE_APP_KEY=your_ka.. 2024. 12. 2. [Android/Kotlin] Kotlin의 ?. 연산자와 ?: 연산자: 실제 예시로 이해하기 개발 중 맵의 출발지/도착지를 재설정하는 기능을 구현하면서 Kotlin의 ?. 연산자와 ?: 연산자를 효율적으로 사용할 수 있는 상황이 발생했습니다.이 글에서는 실제 예시와 함께 두 연산자의 쓰임새를 정리하고, 어떻게 이를 활용해 코드를 간결하고 직관적으로 만들었는지 정리 해 두고자 합니다. 문제 상황: 맵의 마커 업데이트맵에서 사용자가 새로운 출발지나 도착지를 선택하면, 맵에 표시된 마커(레이블)를 업데이트해야 합니다. 이때 고려해야 할 점은 다음과 같습니다:마커가 이미 존재하는 경우기존 마커의 위치를 업데이트해야 합니다.마커가 존재하지 않는 경우새로 마커를 추가해야 합니다.해결 방법: ?. 연산자와 ?: 연산자의 활용이 문제를 해결하기 위해 아래와 같은 Kotlin 문법을 활용했습니다.destinat.. 2024. 11. 29. [Android/Kotlin] 안드로이드 앱에서 카카오 SDK를 사용해 OAuth 로그인을 구현하는 방법 이번 글에서는 카카오 SDK를 사용해 안드로이드 앱에 OAuth 로그인을 구현하는 과정을 기록 해 두고자 합니다. 1. 카카오 SDK 설치먼저, 카카오 SDK를 프로젝트에 추가해야 합니다.Gradle 설정1. 프로젝트 수준 build.gradle 파일에 Maven 저장소 추가.allprojects { repositories { google() mavenCentral() maven { url 'https://devrepo.kakao.com/nexus/content/groups/public/' } }} 2.앱 수준 build.gradle 파일에 카카오 SDK 종속성 추가.dependencies { implementation "com.kakao.sdk:v2.. 2024. 11. 9. [Android/Kotlin] EncryptedSharedPreferences 사용하기: 보안 강화된 데이터 저장 방법 안드로이드 앱 개발 시, 간단한 데이터 저장을 위해 흔히 SharedPreferences를 사용합니다.하지만 이 방식은 기본적으로 암호화되지 않은 데이터를 저장하므로 보안에 취약할 수 있습니다.특히 사용자의 인증 토큰, 계정 정보와 같은 민감한 데이터를 다룰 때는 암호화가 필수적입니다.여기서 EncryptedSharedPreferences가 유용하게 사용될 수 있습니다.이번 글에서는 EncryptedSharedPreferences가 무엇인지, 왜 더 안전한지, 어떻게 사용하는지에 대해 다뤄보겠습니다. 1. EncryptedSharedPreferences란?EncryptedSharedPreferences는 안드로이드에서 민감한 데이터를 안전하게 저장하기 위해 제공하는 암호화된 데이터 저장 방식입니다. 일반.. 2024. 11. 8. 이전 1 ··· 4 5 6 7 8 9 10 ··· 16 다음 반응형