kotlin15 [Kotlin] lateinit vs lazy 정리 Kotlin에서는 변수를 나중에 초기화하는 방법으로 lateinit과 lazy를 사용할 수 있다. 둘 다 선언 시 즉시 초기화하지 않고 나중에 값을 설정하거나 계산할 때 사용하지만, 용도와 동작 방식이 다르다. 1. lateinit개념초기화 지연 변수(Delayed Initialization)주로 var(가변 변수)에 사용null을 사용하지 않고 늦게 초기화할 수 있도록 해준다.특징nullable을 피할 수 있음 (var str: String? = null 대신 lateinit var str: String)초기화를 보장하지 않으면 런타임 에러 발생 (UninitializedPropertyAccessException)기본 타입(Int, Boolean 등)에는 사용 불가→ non-null 객체 타입에서만 .. Kotlin 2025. 5. 12. [프로그래머스][Kotlin] 정수를 나선형으로 배치하기 목차 문제 정보 https://school.programmers.co.kr/learn/courses/30/lessons/181832 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : 0 ~ 1 유형 : 그래프 탐색, 구현 시간 : O(n^2) 문제 풀이 처음 접해보는 유형이면 어려울 수 있지만 방향을 바꾸는 아이디어만 알고 있으면 쉽게 풀 수 있는 문제라고 생각한다.(그래서 0레벨인가?.) (SW Expert Academy에도 매우 유사한 문제 있다.) (0, 0)에서 시작하여 오른쪽 -> 아래 -> 왼쪽 -> 위 방향으로 모든 숫자를 다 채울 때.. Algorithm, Problem Solving/프로그래머스 2023. 4. 27. [codeforces][Kotlin] 1360B - Honest Coach 목차 문제 정보 https://codeforces.com/problemset/problem/1360/B Problem - 1360B - Codeforces codeforces.com 난이도 : B 유형 : Greedy, Sort 시간 : O(T *(N + NlogN)) 문제 풀이 운동선수들을 A, B 집단으로 나눠야하고 나누는 기준은 운동선수들 마다 가지고 있는 힘의 정도이다. "A집단의 운동선수들의 힘 중 가장 큰값 - B집단의 운동선수들의 힘 중 가장 작은 값"을 구해야 한다. 정렬 후 양 옆의 힘의 값의 차이가 제일 작은 값이 답이다. 이해를 위해 아래 표를 보자. [정렬 전] 2 1 3 2 4 3 [정렬 후] 1 2 2 3 4 4 입력값들을 오름차 순으로 정렬하고 왼쪽은 A집단, 오른쪽은 B집단으.. Algorithm, Problem Solving/codeforces 2023. 4. 20. [codeforces][Kotlin] 1624A - Plus One on the Subset 목차 문제 정보 https://codeforces.com/problemset/problem/1624/A Problem - 1624A - Codeforces codeforces.com 난이도 : A 유형 : greedy, Math 시간 : O(nlogn) 문제 풀이 1. 배열을 오름차순으로 정렬 2. 마지막 원소와 첫번째 원소의 차이가 답 코드 import java.io.BufferedReader import java.io.InputStreamReader import java.util.StringTokenizer fun solution() = with(BufferedReader(InputStreamReader(System.`in`))) { var sb = StringBuilder() var t = read.. Algorithm, Problem Solving/codeforces 2023. 4. 5. [codeforces][Kotlin] 500A - New Year Transportation 목차 문제 정보 https://codeforces.com/problemset/problem/500/A Problem - 500A - Codeforces codeforces.com 난이도 : A 유형 : bruteforce, graph 시간 : O(n) 문제 풀이 cell 사이마다 포탈이 있는 구조이다. cell portal cell portal cell portal cell portal cell 현재 셀 옆에 있는 포탈만 사용할 수 있고 역행은 안된다. 포탈 사용) 현재 cell위치 + portal의 값 => 해당 값의 cell로 이동 => 현재 cell의 오른쪽의 포탈 이용 => ... 반복 코드 import java.io.BufferedReader import java.io.InputStreamRea.. Algorithm, Problem Solving/codeforces 2023. 4. 2. [codeforces][Kotlin] 구슬을 나누는 경우의 수 목차 문제 정보 https://school.programmers.co.kr/learn/courses/30/lessons/120840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Lv0 유형 : 조합론 문제 풀이 조합 공식을 활용한 재귀식을 통해 풀이를 했다. nCr = n-1Cr-1 + n-1Cr 코드 class Solution { fun combination(n: Int, r: Int): Int { if (n == r || r == 0) { return 1 } return combination(n - 1, r - 1) + combinatio.. Algorithm, Problem Solving/프로그래머스 2023. 4. 1. [프로그래머스][Kotlin] 합성수 찾기 목차 문제 정보 https://school.programmers.co.kr/learn/courses/30/lessons/120846 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 난이도 : Lv0 유형 : 정수론 문제 풀이 이 문제는 n이 최대 100이여서 완전탐색으로도 쉽게 풀 수 있지만 소수를 이용하면 최적화 시킬 수 있다. 필자는 에라토스네테스의 체를 이용하였다. 코드 class Solution { fun solution(n: Int): Int { var answer: Int = 0 var primes = BooleanArray(n + 1); for.. Algorithm, Problem Solving/프로그래머스 2023. 3. 31. [codeforces][Kotlin] 1367B - Even Array 목차 문제 정보 난이도 : B 유형 : implementation 시간 : O(t * N) 문제 풀이 현재 인덱스와 입력값이 서로 짝수 혹은 홀수가 아닐 경우에만 입력값이 홀수인지 짝수인지 카운팅 해주면 된다. 코드 import java.io.BufferedReader import java.io.InputStreamReader import java.util.StringTokenizer fun solution() = with(BufferedReader(InputStreamReader(System.`in`))) { var sb = StringBuilder() var st: StringTokenizer var t = readLine().toInt() while (t-- > 0) { var n = readLin.. Algorithm, Problem Solving/codeforces 2023. 3. 30. [codeforces][Kotlin] 1475A - Odd Divisor 목차 문제 정보 https://codeforces.com/problemset/problem/1475/A Problem - 1475A - Codeforces codeforces.com 난이도 : A 유형 : Math 문제 풀이 주어진 숫자가 짝수일 경우 2로 계속 나누어서 홀수로 만든 다음 결괏값이 3 이상인 홀수이면 정답이다. 코드 import java.io.BufferedReader import java.io.InputStreamReader fun solution() = with(BufferedReader(InputStreamReader(System.`in`))) { var sb = StringBuilder() var t = readLine().toInt() while (t-- > 0) { var in.. Algorithm, Problem Solving/codeforces 2023. 3. 29. [codeforces][Kotlin] 703A - Mishka and Game 목차 문제 정보 https://codeforces.com/problemset/problem/703/A Problem - 703A - Codeforces codeforces.com 난이도 : A 유형 : implementation 시간 : O(n) 문제 풀이 승리가 많은 사람을 출력 코드 import java.io.BufferedReader import java.io.InputStreamReader import java.util.StringTokenizer fun solution() = with(BufferedReader(InputStreamReader(System.`in`))) { var mCnt = 0 var cCnt = 0 var n = readLine().toInt() for (i in 0 unti.. Algorithm, Problem Solving/codeforces 2023. 3. 28. [codeforces][Kotlin] 1560A - Dislike of Threes 목차 문제 정보 https://codeforces.com/problemset/problem/1560/A Problem - 1560A - Codeforces codeforces.com 난이도 : A 유형 : 브루트포스 문제 풀이 3의 배수 혹은 일의 자리가 3인 수를 제외 코드 import java.io.BufferedReader import java.io.InputStreamReader fun solution() = with(BufferedReader(InputStreamReader(System.`in`))) { var sb = StringBuilder() var list = arrayListOf() var i = 1 while (list.size < 1000) { if (!(i % 3 == 0 || i.. 카테고리 없음 2023. 3. 26. [codeforces][Kotlin] 466A - Cheap Travel 목차 [백준][Java] - [프로그래머스][Kotlin] - 문제 정보 https://codeforces.com/problemset/problem/466/A Problem - 466A - Codeforces codeforces.com 난이도 : A 유형 : 그리디, Math 문제 풀이 세트의 표의 1장당 가격 vs 일반 1장당 가격 둘이 비교해서 그리디 하게 선택하면 된다. 코드 import java.io.BufferedReader import java.io.InputStreamReader import java.util.StringTokenizer fun solution() = with(BufferedReader(InputStreamReader(System.`in`))) { var st = Strin.. Algorithm, Problem Solving/codeforces 2023. 3. 25. 이전 1 2 다음