본문 바로가기

티스토리챌린지6

[Kotlin, S4] 백준 2090번 조화평균 조화평균(2090번)Silver 4#수학 #구현 #정수론 #유클리드 호제법 문제 내용  문제 접근입력받는 수들을 모두 역수로 바꾼 값들의 합을 분수 형태로 변환 후 그 값의 역수를 출력하는 문제이다.1, 2, 4가 들어왔으면 1 + 1/2 + 1/4 = 7/4를 역수로 출력해서 정답이 4/7이 되는 방식이다. 입력값들의 역수를 더하려면 통분이 필요한데, 통분은 입력값들의 최소공배수를 이용해 통분을 진행하면 된다.주의해야 하는 점은 출력을 가장 적은 수의 문자를 사용하는 답을 출력하라고 돼 있는데, 이를 쉽게 풀면 약분해서 출력하라는 뜻이기 때문에 약분까지 진행해서 출력해야 한다.  문제 해결 코드더보기import java.io.BufferedReaderimport java.io.InputStreamRea.. 2024. 11. 25.
[Kotlin, S4] 백준 16471번 작은 수 내기 작은 수 내기(16471번)Silver 4#그리디 알고리즘 #정렬https://www.acmicpc.net/problem/16471 문제 내용 문제 접근사장님이 뽑은 카드에서 이기기 위해 낼 수 있는 가장 큰 카드를 계속 냈을 때, 더 이상 이기는 수가 없을 경우, 이긴 횟수에 2를 곱해서 카드의 개수보다 크다면 YES를 출력하고, 아니면 NO를 출력하면 된다. 입력 예제를 예로 들면,2 1 3 5 61 1 3 2 5 아래가 사장님의 카드고, 위가 주언의 카드일 때, 사장님이 카드를 큰 순서대로 뽑게 되면 5, 3, 2, 1, 1의 순서대로 뽑게 된다.주언이 카드를 뽑아 사장님을 이기려면,사장님이 5를 뽑았을 때, 5보다 작은 카드인 1, 2, 3 중에서 제일 큰 3을 고르고,사장님이 3을 뽑으면 주언이.. 2024. 11. 17.
[Kotlin, S5] 백준 11116번 교통량 교통량(11116번)Silver 5#구현 #브루트포스 알고리즘https://www.acmicpc.net/problem/11116 문제 내용  문제 접근다리의 왼쪽에서 오는 차들(들어오는 차)의 시간과 오른쪽으로 나가는 차들의 시간이 주어졌을 때, 문제에 언급된 규칙을 이용해 다리를 지난 차들이 몇 대인지 구하면 된다. 왼쪽에서 오는 차의 시간이 t, t + 500이고, 오른쪽으로 나간 시간이 t + 1000, t + 1500이 있는 경우가 다리를 지난 차가 된다.  문제 해결 코드더보기import java.io.BufferedReaderimport java.io.InputStreamReaderfun main() { val bf = BufferedReader(InputStreamReader(Syste.. 2024. 11. 15.
[Android] thread와 함께 알아보는 coroutine, flow에 대한 고찰 이번 고찰의 주제는 coroutine이다.kotlin을 사용했거나, 사용 중인 개발자들에게는 항상 따라다니는 비동기 처리 개념이다.이번 포스팅으로 확실하게 궁금했던 것들을 공부하면서 짚고 넘어갈 예정이다. coroutine이란?coroutine은 thread 안에서 실행되는 일시 중단 가능한 작업 단위이다.하나의 thread에서 여러 coroutine이 서로 thread를 양보해 가며 실행될 수 있다. 그러면 어째서 coroutine이 생겨나게 된 걸까? coroutine은 왜 사용하게 되었을까?thread 기반의 다중 thread 작업의 한계coroutine 이전의 동시성 작업은 모두 thread 기반으로 이루어졌다.thread 기반으로 작업을 수행하게 되면 thread 1의 작업이 진행되는 중에 다른.. 2024. 11. 12.
[Android] liveData, stateFlow와 함께 보는 MVVM에 대한 고찰 이번 포스팅에서는 저번 포스팅에서 언급했다시피, clean architecture와 함께 실무에서 반필수적으로 사용되는 디자인 패턴인 mvvm에 대해 공부해서 적어보고자 한다.마찬가지로 공부하면서 참고한 포스팅도 같이 링크로 남겨 놓겠다. MVVM은 무엇일까?MVVM에 관해서는 찾아보면 자료가 많이 나오기 때문에 간단하게 정의해 보면,MVC와 MVP에서 view와 엮이는 의존성을 해결하기 위해 view model을 도입한 디자인 패턴.MVVM은 model, view, view model의 약자다. 여기서 view model과 view는 1 : n의 관계를 가질 수 있다는 특징을 지닌다. MVVM을 왜 쓰는 걸까?mvvm 디자인 패턴은 다음과 같은 장점을 가진다.의존성 최소화view는 view model을.. 2024. 11. 11.
[Android] hilt와 함께 보는 clean architecture에 대한 고찰 이번 포스팅에서는 Android 개발에서 왜 clean architecture를 사용하는지, 그리고 내가 clean architecture에 관해서 궁금했던 것들을 공부해서 적어 보고자 한다. 내가 공부하면서 참고한 포스팅도 함께 남길 테니 더한 내용이 궁금하면 확인해 보는 것도 좋겠다. clean architecture의 정의정의는 다른 포스팅에도 자주 언급되기 때문에 간단하게 설명하겠다.clean architecture는 소프트웨어 시스템의 구조를 설계할 때 지켜야 할 원칙과 방법을 정의한 개념.복잡한 소프트웨어 시스템을 보다 관리 가능하고 유지 보수 가능한 형태로 구축하기 위한 지침을 제공한다. 간단하게 요약하자면, 규모가 큰 소프트웨어를 설계할 때 지켜야 하는 구조 같은 거라고 이해하면 될 것 같.. 2024. 11. 8.
728x90
반응형