13419번: 탕수육
백준/문제2024. 5. 20. 00:3313419번: 탕수육

문제 출처 : https://www.acmicpc.net/problem/13419 언어 : Kotlin 문제 설명 :환규와 태욱이는 둘이서 즐길 수 있는 간단한 게임인 탕수육 게임을 하기로 했다. 게임의 규칙은 다음과 같다. 누가 먼저 시작할지 순서를 정한다.먼저 시작하는 사람이 단어의 가장 첫 글자를 말한다.이후 두 사람이 번갈아 가며 자신의 차례에 이전 사람이 말한 글자의 다음 글자를 말한다.만약 이전 사람이 단어의 가장 마지막 글자를 말했다면 자신의 차례에 단어의 가장 첫 글자를 말한다.만약 자신의 차례에 잘못된 글자를 말하면 게임에서 지게 된다.위 규칙을 이용해 탕수육이란 단어를 가지고 게임을 진행하면 다음과 같다. 탕 수 육 탕 수 육 탕 수 육 탕 수 육 … 위 예시에서 밑줄 친 부분은 첫 번..

11121번: Communication Channels
백준/문제2024. 5. 20. 00:1711121번: Communication Channels

문제 출처 : https://www.acmicpc.net/problem/11121 언어 : Kotlin 문제 설명 :Classical information theory is based on the concept of a communication channel. Information theory is generally considered to have been founded in 1948 by Claude Shannon in his seminal work, “A Mathematical Theory of Communication.” The central paradigm of classical information theory is the engineering problem of the transmission..

10384번: 팬그램
백준/문제2024. 5. 17. 01:4010384번: 팬그램

문제 출처 : https://www.acmicpc.net/problem/10384 언어 : Kotlin 문제 설명 :팬그램은 모든 알파벳을 적어도 한 번씩을 사용한 영어 문장을 말한다.다음은 유명한 팬그램 중 하나이다. The quick brown fox jumps over a lazy dog 더블 팬그램은 모든 알파벳을 적어도 두 번씩은 사용한 문장을 말하고,트리플 팬그램은 모든 알파벳을 적어도 세 번씩은 사용한 문장을 말한다.더 이어나갈 수도 있겠지만 시간상 여기까지만 하도록 하겠다. 입력 :입력은 여러 줄의 테스트케이스들로 이루어진다.첫째 줄에 테스트케이스의 수 n이 주어진다.각 테스트케이스는 영어 소문자와 대문자, 특수기호들로 이루어진다. 출력 :각 케이스마다 한 줄에 하나씩 다음 중 하나를 출력..

9226번: 도깨비말
백준/문제2024. 5. 17. 01:239226번: 도깨비말

문제 출처 : https://www.acmicpc.net/problem/9226 언어 : Kotlin 문제 설명 :도깨비말은 언어 유희 중 하나로, 글자를 특정 법칙에 따라 재구성하는 것을 말한다. 영어권에서는 피그라틴어라는 것이 있다. 주로 어린이들이 많이 쓰는 데, 남들에게 무슨 말인지 모르게 하기 위해 종종 쓴다.  여기엔 규칙이 있는데, 맨 앞글자가 모음이 아닐때 까지 맨 앞 글자를 어미로 돌린 후 그 끝에 ay를 붙여서 완성한다. 예를 들면 frog는 ogfray이 된다. 만약 맨 앞자음이 없는 apple과 같은 경우는 끝에 ay만 붙여 appleay가 된다. 또는, 단어에 모음이 없는 경우에도 단어의 끝에 ay만 붙인다. 주어진 단어를 피그라틴어로 바꾸는 프로그램을 작성하시오. 입력 :한 줄에..

17176번: 암호해독기
백준/문제2024. 5. 17. 01:2217176번: 암호해독기

문제 출처 : https://www.acmicpc.net/problem/17176 언어 : Kotlin 문제 설명 :방금 도착한 암호문을 해독했는데, 해독에 오류가 없는지 확인해보려 한다. 해독한 문장이 암호문을 해석한 결과로 나올 수 없다면, 그 해독은 잘못된 것이다. 암호문은 0 이상 52 이하의 정수로 이루어져 있다. 0은 띄어쓰기, 1 - 26 범위 안의 수는 A ~ Z, 27 - 52 범위 안의 수는 a ~ z로 해석된다. 암호문은 띄어쓰기를 포함한 모든 철자를 이와 같이 정수로 치환한 후 순서를 무작위로 뒤섞어서 만들어졌다. 입력 :첫 번째 줄에는 주어질 수열의 길이 N이 주어진다. (1 ≤ N ≤ 100,000)두 번째 줄에는 암호문에 해당하는 수 N개가 띄어쓰기와 함께 주어진다.세 번째 줄..

적응형 앱, 반응형 UI 탐색
개발/안드로이드2024. 5. 16. 17:29적응형 앱, 반응형 UI 탐색

중단점이란?적응형 앱을 만들려면 화면 크기에 따라 레이아웃이 변경되도록 해야 한다. 레이아웃 변경이 이루어지는 측정 지점을 중단점이라고 한다. Material Design은 대부분의 Android 화면을 처리하는 체계적인 중단점 범위를 만들었다.   이 중단점 범위 표에서는 앱이 화면 크기가 600dp 미만인 기기에서 실행 중인 경우 모바일 레이아웃을 표시해야 함을 보여준다.  창 크기 클래스 사용하기Compose에 도입된 WindowSizeClass API를 사용하면 Material Design 중단점 구현이 간단해진다.창 크기 클래스는 너비와 높이에 대해 소, 중, 대형의 세 가지 크기 카테고리를 도입한다.   프로젝트에서 WindowSizeClass API를 구현하기 위해 다음 단계를 따라야한다....

탐색 그래프 없이 화면 변경
개발/안드로이드2024. 5. 16. 15:37탐색 그래프 없이 화면 변경

이전에 작성한 글에서 NavHostController를 사용해 한 화면에서 다른 화면으로 이동하는 방법을 알아봤다.https://small-stepping.tistory.com/926 Compose Navigation 경로 정의 및 NavHostController이번에 작성하고 있는 글은 Jetpack Compose의 Navigation 튜토리얼 부분이다.  https://developer.android.com/courses/pathways/android-basics-compose-unit-4-pathway-2?hl=ko#codelab-https://developer.android.com/codelabs/basic-android-kotlismall-stepping.tistory.com Compose를 사..

개발/알고리즘2024. 5. 16. 14:42멘버 마이어스 알고리즘과 Kasai 알고리즘

문자열을 다룰 때 빼놓을 수 없는 자료 구조인 접미사 배열(Suffix Array)은 다양한 문제를 푸는데 사용 가능하다.이 접미사 배열은 어떤 문자열 S의 모든 접미사를 사전순으로 정렬해둔 것으로 기본적으로 문자열 길이의 제곱에 비례하는 메모리가 필요하기 때문에 보통 각 접미사의 시작 위치를 담는 정수 배열로 구현된다. 예를 들어, 문자열 S = banana의 접미사 배열은 다음과 같다.Suffixindexa6ana4anana2banana1na5nana3 접미사 배열은 위에서 말했듯 각 접미사의 시작 위치를 담는 정수 배열로 구현되며, 이를 사용해 문자열 검색에 사용할 수 있다. 접미사 배열을 정렬 알고리즘으로 구현할 경우 구현은 매우 쉽다. 그러나 시간 복잡도가 O(nLogn)이 걸리고 최악의 경우 ..

11507번: 카드셋트
백준/문제2024. 5. 16. 01:1911507번: 카드셋트

문제 출처 : https://www.acmicpc.net/problem/11507 언어 : Kotlin 문제 설명 :최근에 진솔이는 로봇 공학을 하기 시작했다. 그래서 포커 카드가 완전한 세트인지 확인하는 로봇을 만들기로 결심했다. 그는 프로그램을 작성하는 일을 분담했다. 그 프로그램은 카드의 모양(스페이드(♠), 하트(♡), 다이아몬드(♢), 클럽(♣))을 인식하는 것이다. 문제를 간단하게 하기 위해서 모든 카드는 하나의 모양과 하나의 숫자를 가진다고 가정한다. 여기서 그 모양은 실제 그림 대신 문자로 대체한다. P,K,H,T에 해당한다. 그리고 숫자는 1~13에 해당하는 정수이다. 로봇은 각각의 카드를 TXY의 형태로 '카드 이름'을 정하는데 T는 모양에 해당하고 XY는 숫자에 해당한다. 만약 만약 ..

1605번: 반복 부분문자열
백준/문제2024. 5. 16. 01:051605번: 반복 부분문자열

문제 출처 : https://www.acmicpc.net/problem/1605 언어 : Kotlin 문제 설명 :알파벳 소문자로 이루어진 길이 L인 문자열이 있다. 이 문자열의 부분문자열 중, 적어도 한 번은 반복되는 (다시 말해서, 전체 문자열에서 두 번 이상 나타나는) 부분문자열을 '반복 부분문자열'이라고 부르자. 문자열이 주어지면, 가장 긴 '반복 부분문자열'의 길이를 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 문자열의 길이 L(1 ≤ L ≤ 200,000)이 주어진다. 둘째 줄에는 문자열을 이루는 L개의 알파벳 소문자들이 띄어쓰기 없이 주어진다. 출력 :첫째 줄에 가장 긴 '반복 부분문자열'의 길이를 출력한다. 만일 '반복 부분문자열'이 하나도 존재하지 않는다면 0을 출력한다. 제한 사항 ..

image