![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cWeOM7/btsHtYkZrqn/ztVor05CZPy30XKJVkWb40/img.png)
코드카타 2016년 문제 정답class Solution { fun solution(a: Int, b: Int): String { val m = listOf(31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31) val w = listOf("FRI", "SAT", "SUN", "MON", "TUE", "WED", "THU") var d = m.slice(0..a - 2).sum() + b - 1 return w[d % 7] }}각 달의 일수와 각 요일의 문자열값을 요소로 가지는 2개의 리스트를 선언한다음,주어진 수만큼 각 달의 일수를 더한 값을 이용해 해당하는 요일을 출력한다. val m = listOf(31, 2..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/vMtv4/btsHrr9wvGH/2XhkedwON5OubSBO0Fm1Hk/img.png)
코트카타 명예의 전당 (1) 문제 정답class Solution { fun solution(k: Int, score: IntArray): IntArray { var res = IntArray(score.size) var kList = mutableListOf() for (i in score.indices) { kList.add(score[i]) kList.sortDescending() if (kList.size > k) kList.removeAt(k) res[i] = kList.last() } return res }}모든 점수를 포함하여 상위 k개의 점..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/yeZ48/btsHqpDRugU/Teh8m1sLbS0Qi5817FaUJK/img.gif)
개요 운동항목은 풀업, 친업, 푸쉬업, 너클 푸쉬업 이렇게 총 4개이다.풀업과 친업은 항목1에 해당하고 푸쉬업과 너클 푸쉬업은 항목2에 해당한다. 원래는 운동항목 설정 없이 풀업과 푸쉬업 기록만 추가하려고 했는데 그립을 살짝 바꿔서 다른 부분도 단련할 수 있는 종목도 추가하면 좋겠단 생각이 들어총 4개의 항목을 중 2개의 항목을 선택하는 다이얼로그를 구현할 것이다. 운동항목 설정 다이얼로그 구현 CommonDialogimport 'package:escape_anchovy/res/text/colors.dart';import 'package:escape_anchovy/res/text/styles.dart';import 'package:escape_anchovy/src/common/common_button..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/CSvcv/btsHp1QNJ4W/tgHAOKNb39LCpvlk3e1dPK/img.png)
코드카타 콜라 문제 문제 문제가 좀 많이 길긴 한데 알고보면 그렇게 어려운 문제는 아니다. 정답class Solution { fun solution(a: Int, b: Int, n: Int): Int { var res: Int = 0 var num: Int = n while (num >= a) { val gb = num / a * b res += gb num = gb + num % a } return res }}while문 이용해서 받을 수 있는 총 콜라의 개수를 계산한다. 변수선언var res: Int = 0var num: Int = n받을 수 있는 총 콜라의 개수..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/psnBQ/btsHptfvKd4/f9wx5iPFkBpMubScvBMG9K/img.gif)
코드카타 푸드파이트 대회 문제 문제가 설명이 좀 길어서 테스트케이스를 보며 뭘 구현해야 되는지 정리해보겠다. 테스트케이스 확인 저렇게 문제가 답도 없이 길 때는 테스트케이스를 통해 코드에서 무엇을 구현해야될지 감을 잡으면 된다. 첫번째 테스트케이스를 통해 설명을 하자면 food 배열인 [1, 3, 4, 6]에서1은 물, 3은 첫번째 음식, 4는 두번째 음식, 6은 세번째 음식에 해당한다. 두 사람이 먹을 n번째 음식들을 각각 공평하게 2로 나눈 다음 n을 그 수만큼 반복해서 result에 더하고,"왼쪽의 선수가 먹을 음식의 배치 + 0 + 오른쪽 선수가 먹을 음식의 배치" 를 반환하면 된다. 정답class Solution { fun solution(food: IntArray): String {..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/kGNfC/btsHpccW2EQ/Zy0rPe8fUWdFFjZCKkViE1/img.png)
코드카타 가장 가까운 글자 문제 정답class Solution { fun solution(s: String): IntArray { var res = IntArray(s.length) { -1 } var arr = s.toCharArray() var sMap = mutableMapOf() for (i in arr.indices) { if (sMap.containsKey(arr[i])) { res[i] = i - sMap[arr[i]]!! } sMap[arr[i]] = i } return res }}res의 모든 요소를 -1로 초기..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/biG0xF/btsHntlOYk1/JHLM5JVZM7IXW4I6lL2tsK/img.png)
코트카타 두 개 뽑아서 더하기 문제 정답class Solution { fun solution(numbers: IntArray): IntArray { val resSet = sortedSetOf() for (i in numbers.indices) { for (j in i + 1 until numbers.size) { resSet.add(numbers[i] + numbers[j]) } } return resSet.toIntArray() }}사전캠프 10일차에 풀었던 '삼총사' 문제의 로직을 활용해서 풀 수 있는 문제이다. 주어진 배열에서 수를 2개씩 뽑아야 하므로 2중 for문을 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/cyG0K6/btsHnw3BU2I/ebgVnmGVji8q6osB7o3iNk/img.gif)
개요 모종의 이유로 운동을 오랫동안 하지 않게 된다면수행능력이 퇴하하게 되고 이는 의욕상실 이어지게 된다. 몸을 만드려면 꾸준하게 운동을 하여점진적 과부화의 원리를 적용해 수행능력을 늘려나가야 한다. 그런 의미에서 운동을 하지 않게 될 때 나 자신에게 경각심을 주기 위해일정 시간이 지나면 일지를 초기화시키는 타이머를 홈화면에 배치할 것이다. 원래는 일지 초기화까지의 시간을 3일로 하려고 했는데여행을 가거나 아플 때도 있다는 걸 고려해서 1주일로 하기로 했다. 운동기록 초기화 타이머 구현 일지 데이터에 필요한 키값 추가 _controller.addData({ 'time': DateTime.now().toString(), 'day': _controller.dataList.length + 1, 'ex..