30684번: 모르고리즘 회장 정하기
백준/문제2024. 8. 6. 15:1530684번: 모르고리즘 회장 정하기

문제 출처 : https://www.acmicpc.net/problem/30684 언어 : Kotlin 문제 설명 :모르고리즘 회장 태윤이는 2024년 모르고리즘을 이끌어갈 회장을 고르려고 한다. 태윤이가 회장을 직접 고르는 이유는 아무도 회장을 맡고 싶어 하지 않기 때문이다. 따라서 태윤이는 이름이 세 글자인 사람 중에서, 사전 순으로 가장 앞선 사람을 회장으로 뽑으려고 한다. 사람들의 이름은 모두 서로 다르고, 길이가 2 이상 5 이하인 알파벳 대문자 A - Z로 이루어져 있다. 이름 S가 이름 T에 비해 사전 순으로 앞선다는 것은 아래 두 조건 중 하나가 성립하는 것과 동치이다. 이때 |S|는 S의 길이이고, S[i]는 S의 i번째 문자를 의미한다. S가 T의 접두사이다. 즉, \lvert S \r..

10929번: SHA-224
백준/문제2024. 8. 6. 13:1210929번: SHA-224

문제 출처 : https://www.acmicpc.net/problem/10929 언어 : Kotlin 문제 설명 :문자열 S가 주어졌을 때, SHA-224 해시값을 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. 출력 :첫째 줄에 S의 SHA-224 해시값을 출력한다. 제한 사항 :시간 제한 : 1초메모리 제한 : 256MB 입출력 예 :입력출력Baekjoon880ceaa24e932e5c19350adc50535922ead12ba689a7a6a9a895d2ce 풀이 : 여전히 다른 SHA 문제와 똑같은 풀이import java.io.BufferedReaderimport java.io.Buffer..

[Hilt] Hilt의 바인딩
개발/AOS2024. 8. 5. 17:02[Hilt] Hilt의 바인딩

Qualifier 활용Hilt는 타입으로 의존성을 구분한다. 타입이 명시되어있기 때문에 타입으로 구분하여 의존성을 바인딩하고 주입하는 것이 가능하다. 그런데 동일한 타입이 두 번 바인딩 된다면?  Hilt 입장에선 Client에서 의존성을 요청할때 어떤 바인딩을 주입해야할지 애매해질 것이다  그렇기에 컴파일 타임에 중복 바인딩 에러를 띄우게 된다. 이러한 양상의 오류가 발생할 경우 중복된 바인딩 요소를 제거하면 간단히 해결된다. 그러나 중복바인딩을 하고 싶을 수도 있다. 이 해결방법의 핵심이 @Qualifier 애노테이션이다. 1. 커스텀 Qualifier 선언Qualifier를 애노테이션으로 갖는 새로운 애노테이션을 선언해야한다. 실제 프로젝트 진행 시 필요하다면 상황에 맞게 Qualifier를 선어하..

31306번: Is Y a Vowel?
백준/문제2024. 8. 5. 01:0731306번: Is Y a Vowel?

문제 출처 : https://www.acmicpc.net/problem/31306 언어 : Kotlin 문제 설명 :The Vowels are a, e, i, o and u, and possibly y. People disagree on whether y is a vowel or not. Unfortunately for you, you have been tasked with counting the number of vowels in a word. You'll have to count how many vowels there are assuming y is a vowel, and assuming y is not. 입력 :The single line of input contains a string of at ..

21966번: (중략)
백준/문제2024. 8. 5. 01:0021966번: (중략)

문제 출처 : https://www.acmicpc.net/problem/21966 언어 : Kotlin 문제 설명 :드높은 남산 위에 우뚝 선(중략)세워라 반석 위에선린의 터를 1개 이상의 문장들이 주어진다. 아래 규칙에 따라 문장들의 중간 부분을 적당히 생략해 25글자 이내로 요약해서 출력하는 프로그램을 작성하자. 단, 입출력의 편의를 위해 문장들을 공백 없이 모두 붙여 구성한 문자열 S가 대신 주어진다. 문자열의 첫 글자부터 가장 먼저 만나는 '.'(마침표)까지, 그리고 각 '.'의 다음 글자부터 가장 먼저 만나는 '.'까지를 한 문장으로 생각하기로 하자. 예를 들어 주어진 문자열 S가 'IamInevitable.IamIronMan.'이라면 'IamInevitable.'이 한 문장, 'IamIronM..

개발/AOS2024. 8. 2. 16:13[Hilt] AndroidEntryPoint의 이해와 Hilt 모듈, 바인딩

AndroidEntryPoint의 이해Dagger에서 말하는 Component는 의존성을 관리하는 컨테이너를 말한다. SubComponent는 어떤 컴포넌트의 하위에 속하는 컴포넌트를 일컫는다. SubComponent의 하위에 있는 또다른 컴포넌트 또한 SubComponent이다. 그렇기에 엄밀히 따지면 Hilt에서 말하는 Component는 Singleton Component 하나 뿐이다. 나머지는 전부 SubComponent이다. Dagger에서는 여러 컴포넌트를 정의하고 인스턴스화 하는게 가능하지만, Hilt에서는 표준 컴포넌트를 사용하고 그것들이 계층을 이루고 있으므로 엄밀히 따지면 Singleton Component만 컴포넌트라고 할 수 있다는 것이다. Hilt에서 SubComponent를 인스..

[Hilt] Hilt의 표준 컴포넌트를 살펴보자
개발/AOS2024. 8. 2. 15:26[Hilt] Hilt의 표준 컴포넌트를 살펴보자

기존 Dagger와는 다르게 표준 컴포넌트를 제공하기 때문에 개발자가 따로 커스텀 컴포넌트를 만들 필요는 없다.물론 커스텀 컴포넌트를 정의하는 방법은 있으나 일반적이진 않으며 권장하지 않는 방법이다. Dagger와 달리 표준 컴포넌트 조차 소스 코드내에서 인스턴스화 하지 않는다. 컴포넌트 계층 이미지에서 볼 수 있는 각 컴포넌트 명칭 위의 스코프 애노테이션은 해당 컴포넌트의 생명주기에 대한 의존성 범위를 지정할때 사용되는 애노테이션이다. 컴포넌트간 화살표 방향은 하위 컴포넌트를 가르키는 것이다. 일반적으로 하위 컴포넌트는 상위 컴포넌트의 바인딩에 접근할 수 있다. 하지만 역방향으로는 불가능하다. 예를들어, FragmentComponent에서 ActivityComponent의 의존성으로 접근하는 것은 가능..

15874번: Caesar Cipher
백준/문제2024. 8. 2. 01:0015874번: Caesar Cipher

문제 출처 : https://www.acmicpc.net/problem/15874 언어 : Kotlin 문제 설명 :여러분들은 고대 로마의 정치인 율리우스 카이사르를 알고 있는가? 그는 정말 대단한 사람이다! 그는 로마의 독재자로도 유명하지만, 고대 암호의 대표격이라 할 수 있는 카이사르 암호(Caesar Cipher)를 만든 사람이기도 하다. 카이사르 암호는 다음과 같은 방식으로 이뤄진다. 알파벳으로 평문을 작성한다. 해당 평문을 얼마나 밀지를 결정한다. 민다는 것은, 한 글자를 알파벳 상의 다음 글자로 바꾸는 것을 말한다. 예를 들어 네 번 밀기로 결정했다면, A는 E로, V는 Z로 바뀐다. 만약 Z를 한 번 더 민다면 A가 된다. 이를 표로 나타내면 다음과 같다. 원문 A B C D E ... V ..

4821번: 페이지 세기
백준/문제2024. 8. 2. 00:374821번: 페이지 세기

문제 출처 : https://www.acmicpc.net/problem/4821 언어 : Kotlin 문제 설명 :워드, 한글, 메모장과 같은 워드 프로세서에서 인쇄를 할 때, 페이지 범위를 직접 입력하여 지정할 수 있다. 예를 들면, 다음과 같이 입력할 수 있다. 10-15,25-28,8-4,13-20,9,8-8 사용자는 위처럼 인쇄하고자 하는 범위를 콤마로 구분하여 입력할 수 있다. 각 인쇄 범위는 양의 정수 하나 또는 하이픈(-)로 구분된 두 양의 정수이다. 수 두 개로 이루어진 범위에서 앞의 수를 low, 뒤의 수를 high라고 한다. 만약, low > high인 경우에는 이 범위는 인쇄하지 않는다. 또, 인쇄 범위가 문서의 범위를 넘어가는 경우에는 출력할 수 있는 페이지만 출력한다. 페이지 번호..

10931번: SHA-384
백준/문제2024. 8. 2. 00:0610931번: SHA-384

문제 출처 : https://www.acmicpc.net/problem/10931 언어 : Kotlin 문제 설명 :문자열 S가 주어졌을 때, SHA-384 해시값을 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 문자열 S가 주어진다. S는 알파벳 대문자와 소문자, 그리고 숫자로만 이루어져 있으며, 길이는 최대 50이다. 출력 :첫째 줄에 S의 SHA-384 해시값을 출력한다. 제한 사항 :시간 제한 : 1초메모리 제한 : 256MB 입출력 예 :입력출력Baekjoon8f077fa785396c86c7f9b8ba03fc41e9ac250a0a3884a2ef5c70638e1a153407b52a58b897a89a0361f2c60c2dc123be 풀이 : import java.io.BufferedReaderim..

image