![14561번: 회문](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FMV4qi%2FbtsIBKnOxO4%2FXjKi0cia3zBJ1iwfANl5Vk%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/14561 언어 : Kotlin 문제 설명 :n진수는 base가 n인 수를 말한다. 예를 들어 십진수는 base가 10인 수이다. n진수의 수 AmAm-1Am-2…A1A0를 n진수로 표현해보면 AmAm-1Am-2…A1A0 = Am × nm + Am-1 × nm–1 + Am-2 × nm–2 + … + A1 × n1 + A0 × n0이다. 예를 들면, 12468은 12468 = 1 × 104 + 2 × 103 + 4 × 102 + 6 × 101 + 8 × 100로 표현할 수 있다. 회문(Palindrome)이란 앞으로 읽으나 뒤로 읽으나 같은 글을 말한다. 예를 들면, madam, level, 12321은 회문이다. 반면에, Chung-..
![7569번: 토마토](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbKgAMn%2FbtsICFMY3q8%2FHoTMyKjyVaOzu5NcmvxqqK%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/7569 언어 : Kotlin 문제 설명 :철수의 토마토 농장에서는 토마토를 보관하는 큰 창고를 가지고 있다. 토마토는 아래의 그림과 같이 격자모양 상자의 칸에 하나씩 넣은 다음, 상자들을 수직으로 쌓아 올려서 창고에 보관한다.창고에 보관되는 토마토들 중에는 잘 익은 것도 있지만, 아직 익지 않은 토마토들도 있을 수 있다. 보관 후 하루가 지나면, 익은 토마토들의 인접한 곳에 있는 익지 않은 토마토들은 익은 토마토의 영향을 받아 익게 된다. 하나의 토마토에 인접한 곳은 위, 아래, 왼쪽, 오른쪽, 앞, 뒤 여섯 방향에 있는 토마토를 의미한다. 대각선 방향에 있는 토마토들에게는 영향을 주지 못하며, 토마토가 혼자 저절로 익는 경우는 없..
![안드로이드 스튜디오의 Thread](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FuZetX%2FbtsIAXNLNvN%2F0HHm79DLfLDVtvIdYKejT1%2Fimg.png)
안드로이드 스튜디오에서는 Thread는 크게 2가지로 구분된다. Main Thread(UI Thread)와 Worker Thread Main Thread는 액티비티와 컴포넌트들의 사용을 담당하고 연동하는 역할로, UI 컴포넌트들과 밀접한 연관이 있는 Thread이기에 UI Thread라고도 불린다. System Call Back Method와 Android Life Cycle 관련된 Method들은 전부 Main Thread에거 관리되어야 한다. 위에 해당하는 글들에서 계속 다루듯, 복잡한 연산, 지연되는 작업들의 경우 Main Thread에서 이뤄질 경우 ANR(Application Not Responding, UI 관련 작업이 일정기간 이상 반응되지 못하면 발생)이 발생하여 애플리케이션이 강제로 ..
Thread와 Process의 차이모두 프로그램의 실행과 관련된 단어로Thread는 어떠한 프로그램 내, 특히 프로세스 내에서 실행되는 흐름의 단위를 말한다.Process는 컴퓨터에서 연속적으로 실행되고 있는 프로그램을 의미한다. 이 둘의 차이로는 Process는 실행의 단위, Thread는 Process 내에서 실행되는 흐름의 단위로 볼 수 있다.Process는 독립적으로 실행되지만 Thread는 Process 내의 Thread 끼리는 Heap, Data 등을 공유한다. 멀티 프로세스와 멀티 스레드의 차이멀티 프로세싱은 하나의 응용 프로그램을 여러 개의 프로세스로 구성하여 각 프로세스가 하나의 작업을 처리하도록 하는 것이다. 여러 개의 자식 프로세스 중 하나에 문제가 발생하면 그 자식 프로세스만 죽고..
![9249번: 최장 공통 부분 문자열](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fbd5r69%2FbtsIBZqiUEX%2FkPNJAk2pg0QJkj1u38LKj1%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/9249 언어 : Kotlin 문제 설명 :문자열 (T=t1t2 ... tm)가 문자열 (S=s1s2 ... sn)의 부분 문자열이 되려면, (s{i+1}s{i+2} ... s{i+m} = T)를 만족하는 (0 ≤ i ≤ n-m)가 있어야 한다. 두 문자열 (A)와 (B)가 주어졌을 때, 두 문자열의 공통 부분 문자열의 최대 길이와 그 부분 문자열을 구하는 프로그램을 작성하시오. 입력 :두 문자열 (A)와 (B)가 한 줄에 하나씩 주어진다. 두 문자열 길이의 합은 20만을 넘지 않는다. 주어지는 문자열은 알파벳 소문자로만 이루어져 있다. 출력 :첫째 줄에 두 문자열의 최장 공통 부분 문자열의 길이를 출력한다.둘째 줄에 해당 부분 문자..
![7662번: 이중 우선순위 큐](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fp5tet%2FbtsICvoqECp%2Fk69VxqItZ2FwonDjdveQz1%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/7662 언어 : Kotlin 문제 설명 :이중 우선순위 큐(dual priority queue)는 전형적인 우선순위 큐처럼 데이터를 삽입, 삭제할 수 있는 자료 구조이다. 전형적인 큐와의 차이점은 데이터를 삭제할 때 연산(operation) 명령에 따라 우선순위가 가장 높은 데이터 또는 가장 낮은 데이터 중 하나를 삭제하는 점이다. 이중 우선순위 큐를 위해선 두 가지 연산이 사용되는데, 하나는 데이터를 삽입하는 연산이고 다른 하나는 데이터를 삭제하는 연산이다. 데이터를 삭제하는 연산은 또 두 가지로 구분되는데 하나는 우선순위가 가장 높은 것을 삭제하기 위한 것이고 다른 하나는 우선순위가 가장 낮은 것을 삭제하기 위한 것이다. 정수만..
![23738번: Ресторан](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F3rCMB%2FbtsIzwPyDpv%2FjOzvMrK8twz4FT9TpeVni1%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/23738 언어 : Kotlin 문제 설명 :팀 레드시프트를 따라 모스크바 여행에 간 한별이는 거리에 늘어선 ‘Ресторан’가 적힌 간판들을 보고 어떤 가게일까 고민하기 시작했다. 러시아어 알파벳에는 영어 알파벳과 비슷하게 생긴 글자들이 있는데, А, В, Е, К, М, Н, О, Р, С, Т, У, Х의 12가지가 있다. А, К, М, О, Т의 다섯 글자는 보이는 대로 읽으면 되지만, 나머지 7가지 글자는 영어 알파벳의 발음과 다르게 읽어야 한다! ‘В’는 ‘B’처럼 보이지만 ‘v’로 읽는다. ‘Е’는 ‘E’처럼 보이지만 ‘ye’로 읽는다. ‘Н’은 ‘H’처럼 보이지만 ‘n’으로 읽는다. ‘Р’은 ‘P’처럼 보이지만 ‘r..
![29614번: 학점계산프로그램](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FoEH8u%2FbtsIzbENA5W%2FJeNkjLb9eRmUlhDp8pnZ71%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/29614 언어 : Kotlin 문제 설명 :종현은 영도와 함께 학교 포털 사이트에서 데이터를 가져와 본인의 학점을 계산하는 프로그램을 만들고 있다. 종현은 영도가 사이트에서 추출한 등급 데이터를 사용해서 평균 학점을 출력하고자 한다. 등급별 학점은 다음의 표를 따른다.등급학점A+4.5A4.0B+3.5B3.0C+2.5C2.0D+1.5D1.0F0.0 입력 :첫째 줄에 과목별 등급이 나열된 문자열 S가 주어진다. 등급 사이에는 별도의 구분자가 없다. 문자열은 표에 있는 문자들로만 이루어져 있으며, 최대 1,000 글자로 이루어져 있다. 출력 :문자열 S에 나열된 등급으로 구한 학점의 산술평균을 첫째 줄에 출력한다. 정답과 출력값의 절대/..
![31867번: 홀짝홀짝](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2Fb4MH2X%2FbtsIAvhVtKb%2F9jNCiBKNBzKTVNdtmSH310%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/31867 언어 : Kotlin 문제 설명 :민구는 자릿수가 N인 양의 정수 K로 홀짝 놀이를 하려고 한다.홀짝 놀이의 과정은 다음과 같다.각 자릿수에 대해서 해당 숫자가 짝수인지 홀수인지를 확인한다. 숫자 0은 짝수이다.모든 자릿수에 대해서 홀짝 판별이 완료되면 전체 짝수의 개수와 홀수의 개수를 비교한다.짝수의 개수가 홀수의 개수보다 더 많으면 주어진 수는 짝짝수이다. 홀수의 개수가 짝수의 개수보다 더 많으면 홀홀수이다.숫자가 너무 길어서 개수를 세는 것에 어려움을 겪는 민구를 위해 홀짝 놀이를 도와주는 프로그램을 작성하자! 입력 :첫 번째 줄에 자릿수 N이 주어진다. (1 ≤ N ≤ 10^6)두 번째 줄에 자연수 K가 주어진다. ..
![26742번: Skarpetki](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbGN6eN%2FbtsIu6kaVSA%2FoaiyHkpgfPkXqkRLjmIpkk%2Fimg.png)
문제 출처 : https://www.acmicpc.net/problem/26742 언어 : Kotlin 문제 설명 :W Bajtocji noszenie skarpetek o różnych kolorach i wzorach przestało już być modne. Teraz nastała moda na noszenie wyłącznie dwóch skarpetek białych lub dwóch skarpetek czarnych. Bajtazar, który zawsze stara się nadążać za trendami w modzie, zakupił dużo pojedynczych skarpetek (białych i czarnych). Chciałby wiedzieć ile jednokoloro..