본문 바로가기
728x90

전체 글86

[Android JetPack] 안드로이드 JetPack 알아보기 최근 안드로이드를 공부하며 JetPack에서 제공하는 기능을 공부하고 있어 JetPack이 정확히 무엇인지 알아보려고 합니다. 'JetPack' 이란? 구글 공식문서에 따르면 Android JetPack을 다음과 같이 설명하고 있습니다. Jetpack은 개발자가 중요한 코드에 집중할 수 있도록 권장사항 준수, 상용구 코드 감소, 여러 Android 버전과 기기에서 일관되게 작동하는 코드 작성을 돕는 라이브러리 묶음입니다. 즉, JetPack은 안드로이드 개발자에게 보다 편리하고 생산적인 개발을 위해 안드로이드에서 제공하는 라이브러리 모음이라고 볼 수 있겠습니다. 구글은 위와 같은 이유로 JetPack 라이브러리 사용을 적극 권장하고 있습니다. 텍스트로 볼 때는 잘 와닿지 않지만 JetPack에서 제공하는.. 2023. 1. 25.
[백준] 18298번 : 오큰수 (Kotlin) 17298번: 오큰수 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에 수열 A의 원소 A1, A2, ..., AN (1 ≤ Ai ≤ 1,000,000)이 주어진다. www.acmicpc.net 안좋은 습관이지만 해당 문제를 보고 '엥 이게 골드4..?' 라는 생각을 먼저 했습니다. 시간초과 import java.lang.StringBuilder fun main() { val n = readLine()!!.toInt() val numbers = readLine()!!.split(" ").map { it.toInt() }.toTypedArray() val sb = StringBuilder() for (i in numbers.indices) { var nge = -1 .. 2023. 1. 24.
[자료구조] Kotlin으로 자료구조 이해하기 - Queue(큐) Queue Queue의 사전적 정의는 '줄, 줄을 서서 기다리다'라는 의미를 갖습니다. 자료구조로서 Queue는 선입선출(FIFO : First In First Out)의 방식으로 데이터를 저장하는 구조를 의미합니다. 예를 들어, 빈 Queue에 1, 2, 3, 4, 5의 순서로 데이터가 들어간다면 들어간 순서대로 1, 2, 3, 4, 5의 순서로 나오게 됩니다. 먼저 들어간게 먼저 나오는 선입선출이라는 키워드를 생각한다면 이해가 쉽습니다. Queue는 위와 같이 선언할 수 있습니다. Stack과 마찬가지로 자바의 Queue를 import하여 사용하지만 Queue는 인터페이스이기 때문에 LinkedList 클래스로 초기화해서 사용하겠습니다. Queue에서 제공하는 주요 기능은 다음과 같습니다. add, .. 2023. 1. 23.
[자료구조] Kotlin으로 자료구조 이해하기 - Stack Stack Stack의 사전적 의미는 '쌓다, 포개지다'라는 의미로 자료구조로서 Stack은 후입선출(LIFO : Last In First Out) 방식으로 데이터를 저장하는 구조를 의미합니다. 쉽게 말해, 먼저 들어온 데이터부터 하단에 쌓여 가장 늦게 들어온 데이터가 가장 먼저 나가는 구조를 갖게 됩니다. 예를 들어, 빈 Stack에 1,2,3,4,5의 순서로 데이터가 삽입된다면 데이터를 꺼낼 때는 5,4,3,2,1의 순서로 나오게 됩니다. 상자를 쌓을 때 먼저 쌓는 상자가 아래에 쌓이는 상황을 생각하면 될 것 같습니다. Kotlin 자체적으로 Stack이 구현되어 있지는 않지만 "java.util.Stack"을 import 하여 사용할 수 있습니다. Stack 클래스는 다양한 기능을 지원합니다. 키워.. 2023. 1. 22.
[백준] 2798번 : 블랙잭 (Kotlin) + 브루트포스 알고리즘 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 백준 2798번 블랙잭 예제를 통해 브루트포스(Brute Force) 알고리즘에 대해 알아보겠습니다. 브루트포스(Brute Force) 브루트포스는 모든 경우의 수를 탐색하면서 조건에 만족하는 결과를 추출하는 완전탐색 알고리즘입니다. 브루트포스 알고리즘은 모든 경우의 수를 탐색하기 때문에 비용이 많이 들고 시간이 오래 걸린다는 치명적인 단점이 있지만 반드시 조건에 만족하는 결과를 도출해 낸다는 특징이 있습니다. 선형적인 구조에서는.. 2023. 1. 20.
[안드로이드] 스피너(Spinner)를 이용해 드롭다운 메뉴 구현 및 커스텀하는 방법 어떤 뷰를 터치했을 때 해당하는 메뉴 항목들을 사용자가 선택할 수 있도록 목록으로 펼쳐지는 방식을 드롭다운 메뉴라고 합니다. 드롭다운 메뉴는 안드로이드에서는 스피너(Spinner)를 이용해 구현할 수 있는데 이번 포스팅에서는 스피너를 구현하는 방법과 스피너를 좀 더 보기 좋게 커스텀하는 방법에 대해 알아보겠습니다. 먼저 메뉴의 목록이 될 레이아웃을 설정합니다. item_spinner_buy_option.xml 저는 padding과 텍스트 속성만 변경했지만 자유롭게 뷰를 추가해도 무방합니다. background_spinner_option.xml ( :drawable) 드롭다운 메뉴를 열기 전 보여지는 스피너 항목을 커스텀합니다. 해당 파일은 스피너의 background 속성과 연결되기 때문에 drawabl.. 2023. 1. 19.
728x90
반응형