분류 전체보기 230

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

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

알고리즘 2024.08.19

안드로이드 샘플 프로젝트

https://github.com/supremehyo/SampleCleanArchitecture GitHub - supremehyo/SampleCleanArchitecture: 안드로이드 샘플앱을 위한 레포입니다. 더 좋은 방법이 생길때안드로이드 샘플앱을 위한 레포입니다. 더 좋은 방법이 생길때마다 꾸준히 업데이트 될 예정입니다. - supremehyo/SampleCleanArchitecturegithub.com최근에 만들고 있는 샘플 프로젝트가 있다.관련해서 다른 포스트에서도 언급을 했었던거 같은데 암튼. 예전에 했던 사이드 프로젝트들을 쭉 돌아보는데 정리도 잘안되고 지금와서 모든 프로젝트들을내가 만족할만한대로 다 수정하기에는 너무 어지러워서몇년이고 꾸준히 업데이트 해볼 프로젝트를 진행하기로 했다. 기..

프로그래머스 - 귤고르기

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

알고리즘 2024.08.18

프로그래머스 - 명예의 전당(1)

문제 설명은 길지만 가수의 점수가 들어올때마다 소팅해주고명예의 전당에 포함되는 k번째 숫자를 기준으로그보다 작을때는 소팅된 리스트의 가장 마지막 숫자,그보다 클때는 소팅된 리스트의 k-1 번째 값을 발표점수 리스트에 추가해주면 된다. class Solution { fun solution(k: Int, score: IntArray): IntArray { var answer = mutableListOf() var list = mutableListOf() score.forEach{ list.add(it) list = list.sorted().reversed().toMutableList() if(..

알고리즘 2024.08.18

프로그래머스 - 문자열 나누기

https://school.programmers.co.kr/learn/courses/30/lessons/140108 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 설명 그대로 문자의 요소들을 카운트해가며 비교하고 x와 같은 문자를 센 카운트와 x와 다른 문자를 센 카운트가 같아질때문자열을 자르고 그때마다 비교 기준이 되는 x 라는 문자를 갱신해주면 된다. class Solution { fun solution(s: String): Int { var answer: Int = 0 var str = s while (str...

알고리즘 2024.08.17

코루틴의 Dispatcher 를 Hilt Singleton으로 주입해보자

구글의 Codelab의 예제나 안드로이드 공식 문서, 블로그의 코루틴 예시들을 보면 아래의 코드처럼 새로운 코루틴을 생성하거나 withContext를 호출할 때 Dispatchers를 하드코딩하는 경우를 많이 찾아볼 수 있습니다. 하지만 Android의 코루틴 권장사항 문서를 보면 Don't hardcode Dispatchers when creating new coroutines 라는 내용이 제일 먼저 등장합니다.// DO inject Dispatchersclass NewsRepository( private val defaultDispatcher: CoroutineDispatcher = Dispatchers.Default) { suspend fun loadNews() = withContext(..

Android 2024.08.17

프로그래머스 - 크기가 작은 부분 문자열

문자열 처리 문제다.어려울건 없지만 처음에 substring 으로 만든 문자열들을list에 담고 거기서 filter 처리해서 size 를 만들고 하는 불필요한 작업들도 있고잘라낸 문자열을 toInt()로 처리했는데주어진 조건의 p가 18자리까지도 될 수 있어서 int로는 표현할 수 없어서 런타임에러가 발생하는 케이스가 있었다. 그래서 불필요한 작업을 없애고 toLong으로 변환해서 비교하는 코드로 변경했다. import java.util.*class Solution { fun solution(t: String, p: String): Int { var answer: Int = 0 var size = p.length var list = mutableListOf() ..

알고리즘 2024.08.14

프로그래머스 - 숫자 변환하기

언어 : Kotlin x를 y로 변환하기 위해 필요한 최소 연산 횟수를 return하도록 solution 함수를 완성해주세요.  라는 문제다 최소 연산 횟수니까 bfs 를 선택하는게 맞았지만처음에는 dfs 로 풀면 풀릴거 같은데? 라고 생각하고 풀었다.결과는 시간초과 나는 케이스가 있어서 실패.아래는 bfs 풀이다.내용 자체는 단순해서 bfs에 대해서 이해하고 있다면 풀이가 어렵진 않다.import java.util.LinkedListimport java.util.Queuelateinit var answer: ArrayListlateinit var queue: Queue>lateinit var visited: HashMapclass Solution { fun solution(x: Int, y: In..

알고리즘 2024.08.14