
개요 해당 사진은 운동시작 버튼을 눌렀을 때 출력할 운동화면들이다. 항목1 > 휴식 페이지 > 항목2 > 휴식 페이지 > (반복) > 완료 페이지 순으로 화면이 라우팅 된다.항목1과 항목2 운동페이지는 운동항목 설정 다이얼로그에서 설정한 종목으로 화면이 출력된다. 운동파트 구현 라우팅 설정 exercise폴더에 필요한 파일들을 만들어주고 class ExerciseScreen1 extends StatefulWidget { const ExerciseScreen1( {super.key, required this.exerciseController, required this.homeController}); final ExerciseController exerciseContro..

코드카타 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..

코트카타 명예의 전당 (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개의 점..

개요 운동항목은 풀업, 친업, 푸쉬업, 너클 푸쉬업 이렇게 총 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..

코드카타 콜라 문제 문제 문제가 좀 많이 길긴 한데 알고보면 그렇게 어려운 문제는 아니다. 정답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받을 수 있는 총 콜라의 개수..

코드카타 푸드파이트 대회 문제 문제가 설명이 좀 길어서 테스트케이스를 보며 뭘 구현해야 되는지 정리해보겠다. 테스트케이스 확인 저렇게 문제가 답도 없이 길 때는 테스트케이스를 통해 코드에서 무엇을 구현해야될지 감을 잡으면 된다. 첫번째 테스트케이스를 통해 설명을 하자면 food 배열인 [1, 3, 4, 6]에서1은 물, 3은 첫번째 음식, 4는 두번째 음식, 6은 세번째 음식에 해당한다. 두 사람이 먹을 n번째 음식들을 각각 공평하게 2로 나눈 다음 n을 그 수만큼 반복해서 result에 더하고,"왼쪽의 선수가 먹을 음식의 배치 + 0 + 오른쪽 선수가 먹을 음식의 배치" 를 반환하면 된다. 정답class Solution { fun solution(food: IntArray): String {..

코드카타 가장 가까운 글자 문제 정답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로 초기..

코트카타 두 개 뽑아서 더하기 문제 정답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문을 ..