13234번: George Boole
백준/문제2024. 8. 12. 13:5413234번: George Boole

문제 출처 : https://www.acmicpc.net/problem/13234 언어 : Kotlin 문제 설명 :George Boole was an English mathematician, educator, philosopher who was born in 1815, 200 years ago. He was the first professor of mathematics at Queen's College, Cork (now University College Cork (UCC)) and is known as the inventor of boolean arithmetic: The field that is the basis of today’s computers. In boolean arithmetic, ins..

2149번: 암호 해독
백준/문제2024. 8. 12. 13:412149번: 암호 해독

문제 출처 : https://www.acmicpc.net/problem/2149 언어 : Kotlin 문제 설명 :어떤 문장을 키를 이용하여 다음과 같이 암호화하려 한다. 암호화하기 전의 문장을 평문이라 하며, 암호화 된 문장은 암호문이라고 한다. 키, 평문, 암호문은 모두 영어 대문자로 된 공백 없는 문장이다. 키의 길이를 N이라고 했을 때, 우선 평문을 N 글자씩 잘라서 다음과 같이 나열한다. 예를 들어 평문이 MEETMEBYTHEOLDOAKTREENTH 이고, 키가 BATBOY라고 해 보자. BATBOYMEETMEBYTHEOLDOAKTREENTH 제일 윗줄은 이해를 돕기 위해 키를 다시 한 번 쓴 것이다. 이제 이 행렬(배열)을 열(Column) 단위로 정렬을 하는데, 정렬을 하는 키준은 키의 문자..

MVI의 이해
개발/안드로이드2024. 8. 9. 15:42MVI의 이해

1. MVI란?Model, View, Intent의 앞글자를 따와 만든 아키텍쳐 패턴을 일컫는다.GUI 프로그래밍에서 주로 언급되는 패턴이며 세 가지의 키워드로 나누는 것도 일종의 관심사의 분리를 위한 것이다. 특히 UI와 연관된 것에 한정하여 관심사를 분리한 것이다.Model: UI의 상태(State)View: View, Compose 등Intent: 의도, 사용자의 액션 또는 이벤트.안드로이드에서의 Intent와는 다른 개념의 Intent이다.이 Intent는 어떠한 의도를 나타내며, 사용자가 화면을 클릭하여 데이터를 로딩하거나 다른 화면으로 이동하는 그러한 의도를 말한다. 2. MVI는 순수함수그래서 MVI의 가장 큰 특징은 순수함수 사이클 형태를 갖는다는 것이다.view(model(intent()..

30889번: 좌석 배치도
백준/문제2024. 8. 9. 13:5730889번: 좌석 배치도

문제 출처 : https://www.acmicpc.net/problem/30889 언어 : Kotlin 문제 설명 :희권이는 영화관에서 한 개의 상영관을 담당하고 있다. 상영관의 좌석은 10*20 형태이고, 좌석 번호는 다음과 같다.스크린을 기준으로 맨 앞이 A열, 맨 뒤가 J열이다. 좌석은 가장 왼쪽이 1번, 오른쪽이 20번이다. 갑자기 영화관의 컴퓨터가 고장이 나서 좌석 배치를 알 수 없게 되었다. 다행히 희권이에겐 손님들이 어떤 좌석을 예매했는지 정보가 남아있었다. 어떤 손님의 예매 정보가 A10이라면 A열 10번 좌석을 예매했다는 뜻이다. 희권이를 도와 영화관의 좌석 배치도를 만들어 보자. 단, 좌석이 중복되는 경우는 없다. 입력 :첫 번째 줄에 영화를 예매한 손님 수 N이 주어진다. (1 ≤ N..

10927번: MD5
백준/문제2024. 8. 9. 13:4210927번: MD5

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

9872번: Record Kepping
백준/문제2024. 8. 9. 13:419872번: Record Kepping

문제 출처 : https://www.acmicpc.net/problem/9872 언어 : Kotlin 문제 설명 :Farmer John has been keeping detailed records of his cows as they enter the barn for milking. Each hour, a group of 3 cows enters the barn, and Farmer John writes down their names. For example over a 5-hour period, he might write down the following list, where each row corresponds to a group entering the barn: BESSIE ELSIE MATILDA F..

클린 아키텍처의 기본 개념 (2)
개발/안드로이드2024. 8. 8. 17:31클린 아키텍처의 기본 개념 (2)

클린 아키텍처의 개요1. 경계(boundary) 만들기저수준 모듈: 상세한 기능 구현, 변경이 잦을만한 요소들의 집합 (예: 문자열 암호화 이후, 로컬 및 원격 DB에 저장) 고수준 모듈: 핵심적인 비즈니스 로직, 추상적으로 서술 (예: 문자열 저장) 2. 클린 아키텍처란? 소프트웨어 구조를 설계할 때 지켜야 할 원칙과 방법을 정의한 개념 2-1. 의존성 규칙 의존성은 반드시 바깥에서 안쪽으로. 소스코드의 의존성 방향이 동심원 안쪽으로 향하고 있다.내부의 원을 Entities라고 가정하면, 내부의 원은 외부에 대해서 몰라야 한다.외부의 원은 내부의 것을 의존하기 때문에 내부를 알 수 있다. 예를 들어, UI의 변경(외부의 원)으로 인해서 이 Entities(내부의 원)을 변경하면 안된다. 2-2. 엔티티..

30403번: 무지개 만들기
백준/문제2024. 8. 8. 15:1030403번: 무지개 만들기

문제 출처 : https://www.acmicpc.net/problem/30403 언어 : Kotlin 문제 설명 :무지개 문자열은 R(빨간색), O(주황색), Y(노란색), G(초록색), B(파란색), I(남색), V(보라색) 순으로 이루어진 문자열이며, 대소문자를 구분하지 않는다. 임스는 춘배에게 영어 대소문자로 이루어진 문자열을 제공하고, 해당 문자열에 있는 문자들을 활용하여 무지개 문자열을 만들 수 있는지 물어봤다. 임스가 춘배에게 제공한 문자열의 길이 N과, 문자열이 주어질 때, 소문자로만 이루어진 무지개를 만들 수 있으면 yes, 대문자로만 이루어진 무지개를 만들 수 있으면 YES, 두 가지 모두 만들 수 있으면 YeS, 두 가지 모두 만들 수 없으면 NO!를 출력한다. 입력 :첫 번째 줄에는..

9584번: Fraud Busters
백준/문제2024. 8. 8. 14:569584번: Fraud Busters

문제 출처 : https://www.acmicpc.net/problem/9584 언어 : Kotlin 문제 설명 :The number of cars in Default City that travel to the city center daily vastly exceeds the number of available parking spots. The City Council had decided to introduce parking fees to combat the problem of overspill parking on the city streets. Parking fees are enforced using an automated vehicle registration plate scanners that tak..

개발/안드로이드2024. 8. 7. 17:39클린 아키텍처의 기본 개념 (1)

아키텍처 설계와 원칙1. 아키텍처란(Architecture)?소프트웨어에서 말하는 아키텍처란, 해당 소프트웨어를 구현한 시스템의 형태를 말하는 것이다. 그러한 형태는 개발, 배포, 운영, 유지보수를 쉽게 할 수 있도록 도와준다. 목표는 개발을 할때 투입되는 비용을 최소화하는 것이다. 아키텍쳐는 스파게티 코드처럼 코드가 엉망이 되어가는 것을 방지하는 규약이자 약속이다.일부 개발자들은 지저분하더라도 우선 개발을 빨리 하고 아키텍쳐는 나중에 하자고 한다. 하지만 엉망이 된 코드를 다시 정리하는데 걸리는 시간은 처음부터 깔끔하게 만드는 것보다 배로 시간이 걸릴 것이다. 개발하는 사람 본인의 더 중요한 가치가 시간이라면 아키텍처가 더 나은 선택이 될 것이다. 2. 설계 원칙 (SOLID)단일 책임 원칙 (Sing..

image