전체 글

개발 관련 지식을 끄적이고 있습니다
[백준 1966번] 프린터 큐 - Kotlinhttps://www.acmicpc.net/problem/1966문제여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다.여러 개의 문서가 쌓인다면 Queue 자료구조에 쌓여서 FIFO - First In First Out - 에 따라 인쇄가 되게 된다.하지만 상근이는 새로운 프린터기 내부 소프트웨어를 개발하였는데, 이 프린터기는 다음과 같은 조건에 따라 인쇄를 하게 된다.현재 Queue의 가장 앞에 있는 문서의 ‘중요도’를 확인한다.나머지 문서들 중 현재 문서보다 중요도가 높은 문서가 하나라도 있다면, 이 문서를 인쇄하지 않고 Queue의 가장 뒤에 재배치 한다. 그렇지 ..
[백준 2563번] 색종이 - Kotlinhttps://www.acmicpc.net/problem/2563문제가로, 세로의 크기가 각각 100인 정사각형 모양의 흰색 도화지가 있다.이 도화지 위에 가로, 세로의 크기가 각각 10인 정사각형 모양의 검은색 색종이를 색종이의 변과 도화지의 변이 평행하도록 붙인다.이러한 방식으로 색종이를 한 장 또는 여러 장 붙인 후 색종이가 붙은 검은 영역의 넓이를 구하는 프로그램을 작성하시오.예를 들어 흰색 도화지 위에 세 장의 검은색 색종이를 그림과 같은 모양으로 붙였다면 검은색 영역의 넓이는 260이 된다.입력첫째 줄에 색종이의 수가 주어진다.이어 둘째 줄부터 한 줄에 하나씩 색종이를 붙인 위치가 주어진다.색종이를 붙인 위치는 두 개의 자연수로 주어지는데 첫 번째 자연..
[백준 1764번] 듣보잡 - Kotlinhttps://www.acmicpc.net/problem/1764문제김진영이 듣도 못한 사람의 명단과, 보도 못한 사람의 명단이 주어질 때, 듣도 보도 못한 사람의 명단을 구하는 프로그램을 작성하시오.입력첫째 줄에 듣도 못한 사람의 수 N, 보도 못한 사람의 수 M이 주어진다.이어서 둘째 줄부터 N개의 줄에 걸쳐 듣도 못한 사람의 이름과, N+2째 줄부터 보도 못한 사람의 이름이 순서대로 주어진다.이름은 띄어쓰기 없이 알파벳 소문자로만 이루어지며, 그 길이는 20 이하이다.N, M은 500,000 이하의 자연수이다.듣도 못한 사람의 명단에는 중복되는 이름이 없으며, 보도 못한 사람의 명단도 마찬가지이다.출력듣보잡의 수와 그 명단을 사전순으로 출력한다.풀이impor..
[백준 11727번] 2×n 타일링 2 - Kotlinhttps://www.acmicpc.net/problem/11727문제2×n 직사각형을 1×2, 2×1과 2×2 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오.아래 그림은 2×17 직사각형을 채운 한가지 예이다.입력첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000)출력첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다.풀이private class Solution11727 { fun solution(n: Int): Int { // n = 2 -> 2 * 2, (2 * 1) * 2, (1 * 2) * 2 val dp = IntArray(n + 1) { ..
[백준 11866번] 요세푸스 문제 0 - Kotlinhttps://www.acmicpc.net/problem/11866문제요세푸스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 K(≤ N)가 주어진다.이제 순서대로 K번째 사람을 제거한다.한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다.이 과정은 N명의 사람이 모두 제거될 때까지 계속된다.원에서 사람들이 제거되는 순서를 (N, K)-요세푸스 순열이라고 한다.예를 들어 (7, 3)-요세푸스 순열은 이다.N과 K가 주어지면 (N, K)-요세푸스 순열을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)출력예제..
Compose 밑줄 텍스트와 클릭 가능하게 만들기사이드 프로젝트를 진행하면서 아래 사진과 같은 UI 기능을 개발해야 하는 상황에 봉착했습니다.텍스트는 유지하면서 이용약관 과 개인보호 정책에 underline이 들어가야 하고, 두 가지 글자는 다른 onclick을 부여해야 했습니다.AnnotatedStringThe basic data structure of text with multiple styles하나의 텍스트 안에 다양한 스타일을 적용할 수 있는 객체getStringAnnotations 을 이용하여 클릭 범위 필터링 가능코드@Composableinternal fun TermsText( onClickTermsOfUse: () -> Unit, onClickPrivacyPolicy: () -> ..
[백준 14891번] 톱니바퀴 - Kotlinhttps://www.acmicpc.net/problem/14891문제총 8개의 톱니를 가지고 있는 톱니바퀴 4개가 아래 그림과 같이 일렬로 놓여져 있다.또, 톱니는 N극 또는 S극 중 하나를 나타내고 있다.톱니바퀴에는 번호가 매겨져 있는데, 가장 왼쪽 톱니바퀴가 1번, 그 오른쪽은 2번, 그 오른쪽은 3번, 가장 오른쪽 톱니바퀴는 4번이다.이때, 톱니바퀴를 총 K번 회전시키려고 한다.톱니바퀴의 회전은 한 칸을 기준으로 한다.회전은 시계 방향과 반시계 방향이 있고, 아래 그림과 같이 회전한다. 톱니바퀴를 회전시키려면, 회전시킬 톱니바퀴와 회전시킬 방향을 결정해야 한다.톱니바퀴가 회전할 때, 서로 맞닿은 극에 따라서 옆에 있는 톱니바퀴를 회전시킬 수도 있고, 회..
[백준 9461번] 파도반 수열 - Kotlinhttps://www.acmicpc.net/problem/9461문제아래 그림과 같이 삼각형이 나선 모양으로 놓여져 있다.첫 삼각형은 정삼각형으로 변의 길이는 1이다.그 다음에는 다음과 같은 과정으로 정삼각형을 계속 추가한다.나선에서 가장 긴 변의 길이를 k라 했을 때, 그 변에 길이가 k인 정삼각형을 추가한다.파도반 수열 P(N)은 나선에 있는 정삼각형의 변의 길이이다.P(1)부터 P(10)까지 첫 10개 숫자는 1, 1, 1, 2, 2, 3, 4, 5, 7, 9이다.N이 주어졌을 때, P(N)을 구하는 프로그램을 작성하시오.입력첫째 줄에 테스트 케이스의 개수 T가 주어진다.각 테스트 케이스는 한 줄로 이루어져 있고, N이 주어진다. (1 ≤ N ≤ 100..
[백준 2294번] 동전 2 - Kotlinhttps://www.acmicpc.net/problem/2294문제n가지 종류의 동전이 있다. 이 동전들을 적당히 사용해서, 그 가치의 합이 k원이 되도록 하고 싶다.그러면서 동전의 개수가 최소가 되도록 하려고 한다.각각의 동전은 몇 개라도 사용할 수 있다.입력첫째 줄에 n, k가 주어진다. (1 ≤ n ≤ 100, 1 ≤ k ≤ 10,000) 다음 n개의 줄에는 각각의 동전의 가치가 주어진다.동전의 가치는 100,000보다 작거나 같은 자연수이다.가치가 같은 동전이 여러 번 주어질 수도 있다.출력첫째 줄에 사용한 동전의 최소 개수를 출력한다. 불가능한 경우에는 -1을 출력한다.풀이import kotlin.math.minprivate class Solution..
[백준 11724번] 연결 요소의 개수 - Kotlinhttps://www.acmicpc.net/problem/11724문제방향 없는 그래프가 주어졌을 때, 연결 요소 (Connected Component)의 개수를 구하는 프로그램을 작성하시오.입력첫째 줄에 정점의 개수 N과 간선의 개수 M이 주어진다.(1 ≤ N ≤ 1,000, 0 ≤ M ≤ N×(N-1)/2)둘째 줄부터 M개의 줄에 간선의 양 끝점 u와 v가 주어진다.(1 ≤ u, v ≤ N, u ≠ v) 같은 간선은 한 번만 주어진다.출력첫째 줄에 연결 요소의 개수를 출력한다.풀이private class Solution11724 { fun solution(graph: Array): Int { var result = 0 ..
citytexi
미래를 위한 개발 히스토리