전체 글
-
[Kotlin] 코틀린 중급 (feat. 람다, 확장함수, Scope function, 초기화 지연 등...)IT Study/Android 2024. 1. 15. 15:37
람다 package fastcampus.part0.kotlin fun main() { // 1. 람다 // 익명 함수 (일회용 함수) // 변수처럼 사용할 수 있다. (함수의 argument, return으로 사용) val a = fun() { println("hi") } val b: (Int) -> Int = { it * 10 } // (input) -> return = { 함수 구현부 } val c = { i: Int, j: Int -> i * j } // { input -> 함수 구현부 } val d: (Int, String, Boolean) -> String = { _, string, _ -> string } // _ : 미사용 파라미터 a() println(b(10)) println(c(2, 5..
-
함수의 Parameter와 Argument (feat. 매개변수? 전달인자?)IT Study/컴퓨터 기초 2024. 1. 14. 23:09
안녕하세요, 오늘은 프로그래밍에서 자주 접하게 되는 개념인 Parameter(매개변수)와 Argument(전달인자)에 대해 알아보려고 합니다. 이 두 용어는 코드의 특정 부분을 가리키는 말로, 종종 혼용되어 사용되지만 실제로는 약간 다른 의미를 가지고 있습니다. 정리를 통해 확실히 잡고가도록 하죠. Parameter (매개변수) Parameter, 즉 매개변수는 함수의 입력으로 사용되는 변수를 의미합니다. 함수를 선언하거나 정의할 때, 함수 괄호 안에 선언되는 변수들이 바로 매개변수입니다. fun add(a: Int, b: Int): Int { return a + b } 위의 코드에서 a와 b는 매개변수입니다. 이들은 add라는 함수에서 사용되는 입력값들을 대표하는 변수로, 함수의 동작에 필요한 데이터를..
-
[Kotlin] 코틀린 기초 (feat. 함수, 클래스, Null 등...)IT Study/Android 2024. 1. 14. 22:53
함수 1. 유닛 반환 타입(Unit Return Type): 반환값 없는 함수에 대한 타입 표현, 생략 가능 2. 기본 인수(Default Arguments): 함수 매개변수에 기본값 설정으로 함수 오버로딩 필요성 감소 3. 명명된 인수(Named Arguments): 매개변수 이름을 통한 인수 전달로 인수 순서 자유로움 4. 단일 표현식 함수(Single Expression Functions): 함수 본문 축약 표현으로 코드 간결성 향상 package fastcampus.part0.kotlin fun main() { println("Hello") test1(1, 2) test1(1, 3) test2(1) test2(l = 1, n = 3) // 2-3. 함수 안에서 선언 값에 대해 작성 가능 (순서 무..
-
[백준 알고리즘/Kotlin] 2751번 수 정렬하기2 (feat. 코드 비교하기)IT Study/백준 알고리즘 2024. 1. 6. 15:44
문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 예제 입력 1 5 5 4 3 2 1 예제 출력 1 1 2 3 4 5 제출한 2개의 코드를 확인해보며, 두 코드를 비교하도록 하겠습니다. 최초 제출 코드 (1번) import java.lang.StringBuilder import java.util.PriorityQueue fun main() = System.`in`.bufferedReade..
-
[백준 알고리즘/Kotlin] 1847번 스택 수열 (feat. Stack, 스택 관련 메서드)IT Study/백준 알고리즘 2024. 1. 4. 14:36
저는 처음에 이 문제를 접했을 때에는 풀이 방법을 생각하지 못했습니다. 그러나 아래와 같이 로직을 정리하고, 코드를 작성해보도록 하겠습니다. 1. 만들어야 하는 수열을 순서대로 읽으면서 해당 숫자가 스택의 top에 있지 않다면, 그 숫자가 나올 때까지 스택에 숫자를 push합니다. 이 때, push하는 숫자는 1부터 n까지 순서대로 push하고, 각 push 연산마다 + 를 출력합니다. 2. 만약 스택의 top에 있는 숫자가 현재 수열에서 읽은 숫자와 같다면, 스택에서 그 숫자를 pop하고 - 를 출력합니다. 3. 만약 스택의 top에 있는 숫자가 현재 수열에서 읽은 숫자보다 크다면, 주어진 수열을 만들 수 없는 경우이므로 NO를 출력하고 프로그램을 종료합니다. 스택의 top에 있는 수가 현재 수열에서 ..
-
[Kotlin] 배열의 내용을 비교하는 contentEqualsIT Study 2024. 1. 3. 14:05
Kotlin에서 배열을 비교할 때는 주의해야 합니다. 배열이 참조 타입이기 때문에 '==' 연산자를 사용하면 배열의 참조가 비교되기 때문인데요. 이는 다음과 같은 예제 코드에서 확인할 수 있습니다. val arr1 = intArrayOf(1, 2, 3) val arr2 = intArrayOf(1, 2, 3) println(arr1 == arr2) // 출력: false arr1과 arr2는 같은 내용을 가지고 있지만, '==' 연산자를 사용하면 false가 출력됩니다. 이는 '==' 연산자가 두 배열의 참조를 비교하기 때문입니다. 그렇다면, 배열의 내용 자체를 비교하려면 어떻게 해야 할까요? 이때 사용할 수 있는 것이 바로 contentEquals() 함수입니다. 이 함수는 배열의 내용이 같은지를 비교합..
-
[백준 알고리즘/Kotlin] 1181번 단어 정렬 (feat. Set에서 List로 변경?)IT Study/백준 알고리즘 2024. 1. 1. 17:19
1181번 문제는 문제 속에 정답이 있습니다. 1. 길이가 짧은 것부터 2. 길이가 같으면 사전 순으로 단, 중복된 단어는 하나만 남기고 제거해야 한다. 문제는 풀이해야 할 순서를 만들고, 그 순서대로 코드를 작성하면 되는데요. 아래와 같이 순서를 바꿔보도록 하죠. 1. 중복된 단어는 하나만 남기고 제거해야 한다. 2. 길이가 짧은 것부터, 길이가 같으면 사전 순으로 먼저 중복을 제거하고, 정렬해주도록 하겠습니다. 최종 코드 import java.lang.StringBuilder fun main() = System.`in`.bufferedReader().use { br -> val n = br.readLine().toInt() val result = StringBuilder() // 중복 제거 val s..
-
[백준 알고리즘/Kotlin] 2563번 색종이 (feat. 2차원 배열 2)IT Study/백준 알고리즘 2023. 12. 31. 12:42
고민하기 어떻게 풀어야할지 고민부터 해보죠. 1. 가로와 세로가 각각 100인 2차원 배열을 생성합니다. 초기에는 모든 요소를 0으로 설정합니다. 이 배열은 도화지를 나타내며, 각 요소는 해당 위치에 색종이가 있는지를 표시합니다. 2. 색종이의 수를 입력받습니다. 3. 색종이의 위치를 입력받습니다. 이 위치는 색종이의 왼쪽 상단 모서리를 나타냅니다. 4. 색종이의 크기가 10x10이므로, 해당 위치에서 가로와 세로로 10칸에 해당하는 배열의 요소를 1로 설정합니다. 5. 이제 도화지에 색종이가 있는 위치는 배열에서 1로 표시되어 있습니다. 따라서 배열의 모든 요소를 순회하면서 1인 요소의 수를 세면, 이것이 색종이가 붙은 검은 영역의 넓이가 됩니다. 최종 코드 fun main() = System.`in`..