Kotlin 3

프로그래머스 - 기사단원의 무기

https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 자체는 간단하다.천천히 읽으면 무슨 말인지 이해하는데 어렵지 않다. 이 문제의 핵심은 아래인데각 기사는 자신의 기사 번호의 약수 개수에 해당하는 공격력을 가진 무기를 구매하려 합니다. 단, 이웃나라와의 협약에 의해 공격력의 제한수치를 정하고, 제한수치보다 큰 공격력을 가진 무기를 구매해야 하는 기사는 협약기관에서 정한 공격력을 가지는 무기를 구매해야 합니다. 예를 들어, 15번으로 지정된 기사..

알고리즘 2024.08.19

프로그래머스 - 귤고르기

문제 설명경화는 과수원에서 귤을 수확했습니다. 경화는 수확한 귤 중 'k'개를 골라 상자 하나에 담아 판매하려고 합니다. 그런데 수확한 귤의 크기가 일정하지 않아 보기에 좋지 않다고 생각한 경화는 귤을 크기별로 분류했을 때 서로 다른 종류의 수를 최소화하고 싶습니다.예를 들어, 경화가 수확한 귤 8개의 크기가 [1, 3, 2, 5, 4, 5, 2, 3] 이라고 합시다. 경화가 귤 6개를 판매하고 싶다면, 크기가 1, 4인 귤을 제외한 여섯 개의 귤을 상자에 담으면, 귤의 크기의 종류가 2, 3, 5로 총 3가지가 되며 이때가 서로 다른 종류가 최소일 때입니다.경화가 한 상자에 담으려는 귤의 개수 k와 귤의 크기를 담은 배열 tangerine이 매개변수로 주어집니다. 경화가 귤 k개를 고를 때 크기가 서로..

알고리즘 2024.08.18

[이펙티브 코틀린] 1. 가변성을 제한하라

코틀린의 요소 중 일부는 상태를 가진다. 상태라는건 상황에 따라 값이 변화할 수 있는 것을 의미한다. 대표적으로 var 프로퍼티와 mutable 객체가 있다. 시간 변화에 따라 변하는 요소를 표현할 수 있는것은 유용하지만 여러가지 고려할 점이 생긴다. 1. 프로그램을 이해하고 상태 추척하는것이 어려워진다. 2. 가변성을 가지고 있으면 코드의 진행을 추론하기 어려워진다. 3. 멀티스레드 일때 동기화의 문제를 만날 수 있다. 4. 테스트하기가 어려워진다. 변경되는 값이 많을수록 여러 케이스를 테스트 해야한다. 5. 상태 변경이 일어나면 이 상태를 사용하고 있는 곳에 지속적으로 알려주는 번거로움이 생긴다. 예를 들면 이런 상황이다. suspend fun main() { val lock = Any() var n..

Effective Kotiln 2023.01.08