코틀린
-
[백준 알고리즘/Kotlin] 1157번 단어 공부 (feat. maxOrNull, count, indexOf)IT Study/백준 알고리즘 2023. 12. 27. 14:15
이번 글에서는 Kotlin을 이용해 문자열에서 가장 빈도수가 높은 알파벳을 찾는 방법에 대해 알아보겠습니다. 이 문제는 대소문자를 구분하지 않고, 가장 빈도수가 높은 알파벳이 여러 개인 경우 '?'를 출력하는 것이 특징입니다. 최종 코드와 함께 사용된 주요 메서드를 보도록 하겠습니다. 최종 코드 fun main() = System.`in`.bufferedReader().use { br -> val word = br.readLine().uppercase() val counts = IntArray(26) for (char in word) { counts[char - 'A']++ } val max = counts.maxOrNull() val maxCount = counts.count { it == max } ..
-
[백준 알고리즘/Kotlin] 10869번 사칙연산 (feat. 입출력, append 체이닝)IT Study/백준 알고리즘 2023. 12. 26. 15:32
Kotlin 기초부터 탄탄히 가보죠. 1. 백준 알고리즘 풀이 시, 입출력의 기본 형태 1-1. 기본 형태 (simple) import java.io.BufferedReader import java.io.InputStreamReader import java.io.IOException fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val result = StringBuilder() println(result) br.close() } 1-2. 예외 처리한 형태 안전한 코딩을 연습하기 위해서는 예외 처리를 습관화하는 것이 좋겠습니다. (예외가 발생활 확률이 매우 낮을 때는 사용하지 않는 것도 좋을 것 같네요. 필요할 때를 잘 구분해서..
-
[백준 알고리즘/Kotlin] 1715번 카드 정렬하기 (feat. 우선순위 큐, PriorityQueue 클래스와 메서드)IT Study/백준 알고리즘 2023. 12. 22. 14:55
1. 로직 작성하기 1-1. 로직 오해하기 저는 주어진 카드 묶음의 수를 오름차순으로 정렬하고, 앞에 오는 두 수부터 차근차근 더해가면 될 것이라고 생각했습니다. 5 4 4 5 9 10 위와 같은 입력이 주어졌을 경우 1. 배열에 담아 [4, 4, 5, 9, 10] 2. 배열을 오름차순 정렬하고 [4, 4, 5, 9, 10] 3. 앞에 있는 두 수부터 더한다고 생각했습니다. (4 + 4) + (8 + 5) + (13 + 9) + (22 + 10) = 75 1-2. 로직 다시 체크하기 그러나 이 문제는 항상 가장 작은 두 수를 찾아, 더해야 하는 문제입니다. 5 4 4 5 9 10 위와 같은 입력이 주어졌을 경우 1. 배열에 담아 cards = [4, 4, 5, 9, 10] 2. 가장 작은 두 수를 찾아 ..
-
[백준 알고리즘/Kotlin] 1789번 수들의 합IT Study/백준 알고리즘 2023. 12. 21. 16:56
바로 문제로 들어가기 전에... Int, Long 범위보고 가실게요~ 1. Int와 Long의 범위 1. Int 범위 크기 : 32 bit 범위 : - 2³¹ ~ 2³¹ -1 (- 2,147,483,648 ~ 2,147,483,647, 약 -21억 ~ 21억) 2. Long 범위 크기 : 64bit 범위 -2⁶³ ~ 2⁶³ - 1 (약 -9경 ~ 9경) 대부분의 코드에서는 Int를 사용해도 충분했기에 Int를 사용했지만, 문제에 주어진 입력 조건을 확인해보니, Long을 사용해야겠습니다. 2. 최종 코드 n * (n + 1) / 2 연속되는 자연수의 합 공식을 사용하여 풀이했습니다. 연속되는 수의 곱을 찾기 위해 루트를 사용했는데요, 루트를 이용하면 두 수의 곱에 가장 가까운 값을 빠르게 찾을 수 있을 ..
-
[백준 알고리즘/Kotlin] 1931번 회의실 배정 (feat. 입력 받기 이젠 정복한 듯...?)IT Study/백준 알고리즘 2023. 12. 21. 15:07
1. 입력 받기 첫 줄에는 하나의 값 n을 받고, 둘째 줄부터 n+1 줄까지 공백을 사이에 둔 2개의 정수 받기 import java.io.BufferedReader import java.io.InputStreamReader fun main() { val br = BufferedReader(InputStreamReader(System.`in`)) val n = br.readLine().toInt() val meetings = mutableListOf() repeat(n) { val (start, end) = br.readLine.split(" ").map { it.toInt() } meetings.add(start to end) } br.close() } 코드를 자세히 살펴보겠습니다. 1. mutable..
-
[백준 알고리즘/Kotlin] 11047번 동전 0 (feat. 노선 정했다... )IT Study/백준 알고리즘 2023. 12. 20. 16:07
자바스크립트 알고리즘... 안녕... 이제는 널 보내줄게... 고마웠고... 한동안 바바이... 아디다스... ⭐️ 1. val, var 차이 val: 상수, 초기화 후 값 변경 불가 (그러나 변수의 참조가 가리키는 객체의 내부 값 변경 가능) var: 변수, 초기화 후 값 변경 가능 (그러나 다른 타입의 값을 넣을수는 없다.) 2. 입력 받기 입력을 받는 기본 문장입니다. 앞으로 Kotlin으로 문제를 풀이하기 위해 위의 코드를 기억하거나 복사해서 사용하도록 하겠습니다. import java.io.BufferedReader import java.io.InputStreamReader fun main() { val br = BufferedReader(InputStreamReader(System.`in`))..
-
[Android/Kotlin] 앨범, 주사위, 명언 앱 만들어보기 (Feat. GitHub)IT Study/Android 2023. 11. 10. 16:00
안녕하세요! 이번 블로그 글에서는 제가 현재 제작 중인 앱에 대한 내용을 공유해보려고 합니다. 이번에는 기존에 정리하던 블로그 대신 깃허브에 주로 내용을 정리하고 있어서, 해당 앱의 개발 내용과 코드를 더 상세하게 확인하실 수 있습니다. 아래 링크를 통해 깃허브 저장소로 이동하셔서 프로젝트의 진행 상황을 확인해보세요. 혹시나 피드백이나 협업에 관심이 있으신 분들은 언제든지 연락 주세요... (ㅎㅎ) 더보기 three email : 1soelkim@gmail.com 1. BTS 앨범 앱 GitHub - 1three/kotlin-album-bts: [Kotlin] BTS 사진을 볼 수 있는 `안드로이드` 앨범 앱 [Kotlin] BTS 사진을 볼 수 있는 `안드로이드` 앨범 앱. Contribute to 1..
-
[Android/Kotlin] 인프런 강의 시작! (Feat. [왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린)IT Study/Android 2023. 11. 8. 21:28
안드로이드 시작합니다! (아, 재밌겠다!!!!!!) 1. 파일 구성 MainActivity (화면에 있는 요소를 제어하는 파일) /res/layout/activity_main.xml (화면을 구성하는 파일, 레이아웃을 꾸미고 확인할 수 있는 파일) Gradle (라이브러리를 가져올 수 있는 폴더) /res/values/color.xml (컬러 팔레트 지정할 수 있는 파일) 2. 단축키 (MacOS 기준) import 시, Option + Enter 코드 정렬 시, Option + Cmd+ L 네이밍 변경 시, Shift + F6 찾아 모두 변경 시, Cmd + F, Cmd + R 3. 레이아웃의 종류 1) LinearLayout : 선형으로 쌓이는 구조 (빈 공간을 채우는 형태로 쌓이는 구조, 수평/수직..