문제 출처 : https://www.acmicpc.net/problem/1065 언어 : Kotlin 문제 설명 :어떤 양의 정수 X의 각 자리가 등차수열을 이룬다면, 그 수를 한수라고 한다. 등차수열은 연속된 두 개의 수의 차이가 일정한 수열을 말한다. N이 주어졌을 때, 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력하는 프로그램을 작성하시오. 입력 :첫째 줄에 1,000보다 작거나 같은 자연수 N이 주어진다. 출력 :첫째 줄에 1보다 크거나 같고, N보다 작거나 같은 한수의 개수를 출력한다. 제한 사항 :시간 제한 : 2초메모리 제한 : 128MB 입출력 예 :입력출력11099112101051000144500119 풀이 : import java.io.BufferedReaderimpor..
문제 출처 : https://www.acmicpc.net/problem/2558 언어 : Kotlin 문제 설명 :두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 :첫째 줄에 A, 둘째 줄에 B가 주어진다. (0 출력 :첫째 줄에 A+B를 출력한다. 제한 사항 :시간 제한 : 1초메모리 제한 : 128MB 입출력 예 :입력출력1 21 풀이 : import java.io.BufferedReaderimport java.io.BufferedWriterimport java.io.InputStreamReaderimport java.io.OutputStreamWriterfun main() = with(BufferedReader(InputStreamReader(System.`in`..
문제 출처 : https://www.acmicpc.net/problem/24479 언어 : Kotlin 문제 설명 :오늘도 서준이는 깊이 우선 탐색(DFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든 간선의 가중치는 1이다. 정점 R에서 시작하여 깊이 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력하자. 깊이 우선 탐색 의사 코드는 다음과 같다. 인접 정점은 오름차순으로 방문한다.dfs(V, E, R) { # V : 정점 집합, E : 간선 집합, R : 시작 정점 visited[R] 입력 :첫째 줄에..
문제 출처 : https://www.acmicpc.net/problem/1431 언어 : Kotlin 문제 설명 :다솜이는 기타를 많이 가지고 있다. 그리고 각각의 기타는 모두 다른 시리얼 번호를 가지고 있다. 다솜이는 기타를 빨리 찾아서 빨리 사람들에게 연주해주기 위해서 기타를 시리얼 번호 순서대로 정렬하고자 한다. 모든 시리얼 번호는 알파벳 대문자 (A-Z)와 숫자 (0-9)로 이루어져 있다. 시리얼번호 A가 시리얼번호 B의 앞에 오는 경우는 다음과 같다. A와 B의 길이가 다르면, 짧은 것이 먼저 온다. 만약 서로 길이가 같다면, A의 모든 자리수의 합과 B의 모든 자리수의 합을 비교해서 작은 합을 가지는 것이 먼저온다. (숫자인 것만 더한다) 만약 1,2번 둘 조건으로도 비교할 수 없으면, 사전순..
문제 출처 : https://www.acmicpc.net/problem/1253 언어 : Kotlin 문제 설명 :N개의 수 중에서 어떤 수가 다른 수 두 개의 합으로 나타낼 수 있다면 그 수를 “좋다(GOOD)”고 한다. N개의 수가 주어지면 그 중에서 좋은 수의 개수는 몇 개인지 출력하라. 수의 위치가 다르면 값이 같아도 다른 수이다. 입력 :첫째 줄에는 수의 개수 N(1 ≤ N ≤ 2,000), 두 번째 줄에는 i번째 수를 나타내는 Ai가 N개 주어진다. (|Ai| ≤ 1,000,000,000, Ai는 정수) 출력 :좋은 수의 개수를 첫 번째 줄에 출력한다. 제한 사항 :시간 제한 : 2초메모리 제한 : 256MB 입출력 예 :입력출력10 1 2 3 4 5 6 7 8 9 108 풀이 : 투 포인터를..
ViewModel의 단위 테스트 작성 이전에 만든 Unscramble 게임 앱에 단위 테스트를 추가하는 과정이었는데, Unscramble 앱은 사용자가 글자가 뒤섞인 영어단어를 추측하고 추측이 맞았을 때, 포인트를 얻는 간단한 방식의 단어 게임이었다. 이 앱을 기준으로 ViewModel의 단위 테스트 작성법을 알아보고자 한다. https://github.com/google-developer-training/basic-android-kotlin-compose-training-unscramble GitHub - google-developer-training/basic-android-kotlin-compose-training-unscrambleContribute to google-developer-traini..
JetpackCompose의 튜토리얼 codelabs을 하면서 자동 테스트와 ViewModel의 단위 테스트 작성을 해보게 되었다.내가 해본 테스트라곤 학부생 토이프로젝트 수준이었기 때문에 코드를 작성해보고 테스트로 변수 부분을 바꿔가며 에뮬레이터나 기기에 연결해 직접 부딪혀 LogCat에서 잡고 수정하는 것이었다. 자동 테스트란? 소프트웨어의 테스트는 소프트웨어가 예상대로 작동하는지 확인하는 구조화된 방법이다. 자동 테스트는 개발자가 작성한 코드의 또 다른 부분이 올바르게 작동하는지 확인하는 코드이다. 테스트는 앱 개발 프로세스에서 중요한 부분으로, 앱 테스트를 일관되게 실행하여 앱을 공개적으로 출시하기 전에 앱의 기능 동작과 사용성을 확인할 수 있다. 변경사항이 도입될 때 테스트를 통해 기존 코드..
문제 출처 : https://www.acmicpc.net/problem/20529 언어 : Kotlin 문제 설명 :여러분은 요즘 유행하는 심리검사인 MBTI에 대해 들어보았는가?MBTI(Myers-Briggs Type Indicator)는 C.G.Jung의 심리유형론을 근거로 하여 Katharine Cook Briggs와 Isabel Briggs Myers가 보다 쉽고 일상생활에 유용하게 활용할 수 있도록 고안한 자기보고식 성격유형지표이다. (출처: 위키백과) MBTI는 아래와 같이 네 가지 척도로 사람들의 성격을 구분한다.외향(E) / 내향(I)감각(S) / 직관(N)사고(T) / 감정(F)판단(J) / 인식(P)각 척도마다 두 가지 분류가 존재하므로, MBTI는 총 2^4 = 16가지 유형이 있음을..
문제 출처 : https://www.acmicpc.net/problem/11403 언어 : Kotlin 문제 설명 :가중치 없는 방향 그래프 G가 주어졌을 때, 모든 정점 (i, j)에 대해서, i에서 j로 가는 길이가 양수인 경로가 있는지 없는지 구하는 프로그램을 작성하시오. 입력 :첫째 줄에 정점의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄부터 N개 줄에는 그래프의 인접 행렬이 주어진다. i번째 줄의 j번째 숫자가 1인 경우에는 i에서 j로 가는 간선이 존재한다는 뜻이고, 0인 경우는 없다는 뜻이다. i번째 줄의 i번째 숫자는 항상 0이다. 출력 :총 N개의 줄에 걸쳐서 문제의 정답을 인접행렬 형식으로 출력한다. 정점 i에서 j로 가는 길이가 양수인 경로가 있으면 i번째 줄의 j번째 숫자..
문제 출처 : https://www.acmicpc.net/problem/6064 언어 : Kotlin 문제 설명 :최근에 ICPC 탐사대는 남아메리카의 잉카 제국이 놀라운 문명을 지닌 카잉 제국을 토대로 하여 세워졌다는 사실을 발견했다. 카잉 제국의 백성들은 특이한 달력을 사용한 것으로 알려져 있다. 그들은 M과 N보다 작거나 같은 두 개의 자연수 x, y를 가지고 각 년도를 와 같은 형식으로 표현하였다. 그들은 이 세상의 시초에 해당하는 첫 번째 해를 로 표현하고, 두 번째 해를 로 표현하였다. 의 다음 해를 표현한 것을 이라고 하자. 만일 x 은 그들 달력의 마지막 해로서, 이 해에 세상의 종말이 도래한다는 예언이 전해 온다. 예를 들어, M = 10 이고 N = 12라고 하자. 첫 번째 해는 로 표..