26768번: H4x0r
백준/문제2024. 6. 28. 14:3926768번: H4x0r

문제 출처 : https://www.acmicpc.net/problem/26768 언어 : Kotlin 문제 설명 :Od dawna wiadomo, że hakerzy posługują się własnym językiem, różnymi skrótami i innymi formami zaciemniania, żeby zacierać ścieżki po sobie. O najlepszych z nich zwykle mawia się „h4x0rzy”.Niektórzy hakerzy czasami zamieniają niektóre litery na cyfry, żeby ich tekst wyglądał bardziej profesjonalnie. Każde wystąpienie jednej z poniż..

15786번: Send me the money
백준/문제2024. 6. 28. 11:4315786번: Send me the money

문제 출처 : https://www.acmicpc.net/problem/15786 언어 : Kotlin 문제 설명 :석규는 해외로 저렴하고 간편하게 송금할 수 있는 센트비 서비스를 이용하여 CTP 왕국에 놀러간 형동이에게 돈을 보내주려고 한다. 하지만 안타깝게도 석규는 센트비 비밀번호를 까먹어버렸고 돈을 보내주지 못한다.  다행히도 석규는 평소에 포스트잇에 비밀번호를 적어놓는다. 비밀번호는 알파벳 대문자로만 구성이 되어있으며 석규는 이 중 일부를 정확히 기억하고 있다. 석규는 포스트잇을 확인하여 비밀번호를 입력하려고 했지만, 포스트잇은 여러 장 존재했고 이 중 어떤 포스트잇이 센트비 비밀번호가 적힌 포스트잇인지 모른다. 석규는 센트비 비밀번호의 알파벳 중 등장하는 순서대로 N글자만 정확히 기억하고 있으며..

아호 코라식(Aho-Corasick) 알고리즘
개발/알고리즘2024. 6. 27. 17:11아호 코라식(Aho-Corasick) 알고리즘

아호 코라식 알고리즘(Aho-Corasick string matching algorithm)은 Alfred V. Aho와 Margaret J. Corasick이 고안한 문자열 매칭 알고리즘이다. 패턴 1개를 탐색하는 매칭 알고리즘은 선형 시간에 구현됨을 KMP 등 여러 알고리즘을 통해 증명되었으나, 패턴 집합에 대해 해당 알고리즘들을 사용해보면 패턴 개수에 비례해 그 속도가 느려진다는 점이 발생했다.시간복잡도는 O(m + zn)이 되는 것이다.m: 모든 패턴들의 길이 합z: 패턴 수n: text 크기이를 보완한 것이 아호 코라식 알고리즘으로 시간복잡도는 O(m + n + k)이다. 패턴 집합에 대하여 패턴 길이와 텍스트의 선형 시간에 탐색을 처리할 수 있게 된다.k: 텍스트 내에 패턴의 발생 수 아호 코..

27880번: Gahui and Soongsil University station
백준/문제2024. 6. 27. 15:1327880번: Gahui and Soongsil University station

문제 출처 : https://www.acmicpc.net/problem/27880 언어 : Kotlin 문제 설명 :Soongsil University Station is famous as the deepest station on Seoul Subway Line 7. This station is so deep that the platform is on the B6. Gahui was surprised that she did not reach the platform after more than five minutes from the exit. Gahui wants to know how deep Soongsil University station is. Find the depth of the Soongsil ..

17828번: 문자열 화폐
백준/문제2024. 6. 27. 14:4817828번: 문자열 화폐

문제 출처 : https://www.acmicpc.net/problem/17828 언어 : Kotlin 문제 설명 :작년에 소수나라에 다녀온 하나는, 올해는 문자열나라로 관광을 가려고 한다. 문자열나라에서는 특이하게 알파벳 대문자로 구성된 문자열을 화폐로 사용한다. 문자열나라에서 'A'는 1의 가치, 'B'는 2의 가치, ..., 'Z'는 26의 가치를 가지고 있으며, 이 알파벳들을 붙여 화폐로 쓰일 문자열을 만든다. 예를 들어, "HONGIK"의 가치는 8 + 15 + 14 + 7 + 9 + 11 = 64가 된다. 소수나라에서 특이한 화폐 때문에 큰 스트레스를 받았던 하나는, 이번에는 정확한 소비 계획을 세워 미리 문자열 화폐로 돈을 환전해가려고 한다. 하나가 가져갈 문자열은 딱 하나이며, 길이는 N이..

17548번: Greetings!
백준/문제2024. 6. 27. 14:0817548번: Greetings!

문제 출처 : https://www.acmicpc.net/problem/26594 언어 : Kotlin 문제 설명 :Now that Snapchat and Slingshot are soooo 2018, the teenagers of the world have all switched to the new hot app called BAPC (Bidirectional and Private Communication). This app has some stricter social rules than previous iterations. For example, if someone says goodbye using Later!, the other person is expected to reply with Alliga..

26594번: ZOAC 5
백준/문제2024. 6. 26. 14:4226594번: ZOAC 5

문제 출처 : https://www.acmicpc.net/problem/26594 언어 : Kotlin 문제 설명 :2022년 12월, 다섯 번째로 개최된 ZOAC의 오프닝을 맡은 성우는 누구보다 화려하게 ZOAC를 알리려 한다. 매번 새로운 방식으로 문자열을 보여주던 성우는 이번 대회에서는 평범하게 앞 글자부터 하나씩 보여주기로 했다. 성우는 문자를 입력하기 위해 키보드로 손을 뻗은 순간, 실수로 마시던 소주를 키보드에 쏟아버리고 말았다... 알코올에 취한 키보드는 어떤 자판을 한 번만 눌러도 N번 누른 것처럼 인식을 하게 되어버렸다! 소중한 키보드를 고치기 위해 고장 접수를 하는 성우는 N을 정확하게 알아야 한다. 눈물이 앞을 가려 모니터를 제대로 볼 수 없는 성우를 위해 대신 N을 구해주도록 하자!..

10256번: 돌연변이
백준/문제2024. 6. 26. 14:2410256번: 돌연변이

문제 출처 : https://www.acmicpc.net/problem/10256 언어 : Kotlin 문제 설명 :인간의 DNA 구조는 A, C, G, T로 이루어진 하나의 긴 문자열로 표현할 수 있다. 이때, 몇 몇 질병은 DNA 구조를 나타낸 문자열의 어떤 연속된 부분 문자열과 관련이 있다는 것이 밝혀져 있다. 만일 DNA가 특정 문자열을 부분 문자열로 가진다면 그 질병에 걸릴 가능성이 높다는 것이다. 이러한 특정 문자열을 마커(marker)라 한다. 하지만 때때로 DNA 구조를 그대로 확인하는 것만으로는 질병과 관련된 마커를 확인할 수 없는 경우가 있다. 마커의 돌연변이 가능성 때문이다. 마커의 돌연변이는 아래와 같이 일어난다. 먼저, 마커를 세 부분으로 나눈다, 이때, 첫 부분과 세 번째 부분은..

9519번: 졸려
백준/문제2024. 6. 26. 13:389519번: 졸려

문제 출처 : https://www.acmicpc.net/problem/9519 언어 : Kotlin 문제 설명 :선영이는 다가오는 COCI에 사용할 데이터를 만드느라 삼일동안 깨어있었다. 더 이상 데이터를 만들 수 없는 상황에 이르렀고, 심지어 선영이는 신경쇠약에 걸려 아무것도 제대로 보지 못하는 상황이 되었다. 선영이가 무엇인가를 읽다가 눈을 한 번 깜박하면 단어의 뒷 부분 절반이 앞 부분과 섞이게 된다. (길이가 홀수인 경우에는 뒷 부분의 길이가 짧다) 섞이는 방법은 아래와 같다. 마지막 글자가 첫 번째 글자와 두 번째 글자 사이로 이동한다. 뒤에서 두 번째 글자가 두 번째 글자와 세 번째 글자 사이로 이동한다. 뒤에서 k번째 글자는 앞에서부터 k번째와 k+1번째 글자 사이로 이동한다. 예를 들어,..

안드로이드 4대 컴포넌트
개발/안드로이드2024. 6. 25. 14:49안드로이드 4대 컴포넌트

잡설:면접때 받은 질문인 안드로이드 4대 컴포넌트.아니 정확히는 안드로이드에 액티비티, 서비스, 브로드캐스트 리시버, 콘텐츠 프로바이더에 대해 설명해보라고 들었다.맨 처음에 이 대답을 요구하셨는데 잘못 알아들어 컴포넌트가 아니라 Jetpack 컴포저블에 대해 설명해버렸다.그래서 이후에 재차 질문하신 것이지만, 정확히 대답을 못했다. 나중에 면접이 끝나갈때야 머리속에서 망했다는 생각이 들었던 기억이 난다.   본문: 이 안드로이드 4대 컴포넌트(구성요소)를 알아보자.각각의 구성요소는 시스템이나 앱의 진입점이며, 서로 Intent를 통해 상호작용이 가능하다. 특징으로는 다음과 같다.각 컴포넌트는 독립적이다.각 컴포넌트는 고유의 기능을 수행한다.각 컴포넌트는 Intent를 통해 상호작용이 가능하다.  1. 액..

image