코드카타 공원산책 문제 시작지점에서 주어진 방향으로 이동해 도착한 지점을 반환하는 문제이다. 입출력 예시 이동 중에 장애물이 있거나 공원을 빠져나왔다면 해당 이동명령은 실행하지 않는다. 테스트케이스 추가입력값 > ["XXX", "XSX", "XXX"], ["E 2", "S 3", "W 1"]출력값 > [1, 1]시작위치의 Y 좌표값이 0이 아닐수도 있음을 고려해야한다. 풀이class Solution { fun solution(park: Array, routes: Array): List { // 시작 위치 찾기 val sY = park.indexOfFirst { it.contains('S') } // 'S'가 있는 행 찾기 val sX = park[sY..
코드카타 달리기 경주 문제 이름이 불린 선수의 위치를 앞의 선수와 교체하여경주가 끝났을 때(모든 이름을 불렀을 때) 플레이어의 등수를 반환하는 문제이다. 경기 진행 중 1등인 선수의 이름을 부르지 않는다 하니1등 앞에 있는 선수를 불러오려다 나는 index범위 초과 에러는 고려하지 않아도 된다. 근래에 고봉밥 문제 설명 보다가 간결한 문제설명을 보니 이리 좋을수가 없다. 시간 복잡도를 고려하지 않은 풀이class Solution { fun solution(players: Array, callings: Array): Array { // 배열 요소 위치 변환 함수 fun swap(arr: Array, i: Int, j: Int) { val temp..
코드카타 개인정보 수집 유효기간 문제 개인정보 수집 일자에서 해당 약관의 유효기간을 더한 시점이 오늘 날짜를 지났다면해당 개인정보를 파기한다. 파기한 개인정보 번호를 리스트로 출력한다. 입출력 예시 날짜 연산을 하기 위해선 해당 입력값을 가공할 필요가 있어보인다. 풀이class Solution { fun solution(today: String, terms: Array, privacies: Array): List { // 오늘의 날짜 문자열을 .을 기준으로 나눠서 정수 리스트로 변환 val today = today.split(".").map { it.toInt() } // 약관을 키로 유효기간을 값으로 가지는 맵 생성 val termsMa..
코드카타 바탕화면 정리 문제 파일을 모두 선택할 수 있는 최소 드래그 범위를 구하는 문제이다. lux는 luy는 드래그 시작점의 X, Y 좌표에 해당,rdx와 rdy는 드래그 끝점의 X, Y 좌표에 해당한다. 입출력 예시 테스트 케이스에 포함되어 있지 않지만 맨 마지막 줄에 파일이 없는 경우도 고려해야 한다. 풀이class Solution { fun solution(wallpaper: Array): List { // 드래그 시작, 끝 점 X, Y 좌표 초기화 var lux = 0 var luy = 50 // wallpaper의 최대 길이가 50이기 때문에 50으로 초기화 var rdx = 0 var rdy = 0 ..
코드카타 성격 유형 검사하기 문제 검사자의 선택지에 따라 각 성격유형에 점수를 할당하고할당한 점수를 기반으로 성격유형을 반환한다. 입출력 예시 첫번째 테스트케이스의 성격 유형 검사결과는{R=0, T=3, C=1, F=0, J=0, M=2, A=1, N=1} 의 값을 가진다. 앞에서 부터 성격 지표를 2개씩 묶어서 점수가 높은 쪽의 성격 유형을 반환하고두 성격 유형의 점수가 같으면 앞에 위치한 성격유형을 반환하므로 "TCMA"를 반환한다 풀이class Solution { fun solution(survey: Array, choices: IntArray): String { // 성격 유형별로 점수를 저장할 맵 선언 val map = mutableMapOf( ..
9 to 9 개발 공부란? 본인은 스파르타 코딩클럽의 안드로이드 트랙을 신청했다. 해당 국비지원 부트캠프에서는 9 to 9 으로 부트캠프를 운영했는데여기서 9 to 9이란 오전 9시 부터 오후 9시까지를 의미한다. 진짜 9 to 9?매일 12시간동안 공부를 하는 건 솔직히 무리라고 생각이 든다.그러나 9 to 9 공부방식은 진짜 12시간을 공부하는 것이 아니다. 점심시간과 저녁시간을 포함해서 2시간 정도의 정해진 휴식시간이 있고특정 시간마다 zoom으로 개발에 관련된 세션을 진행하기도 한다. 팀 활동을 끝마친 다음 개인공부 시간에 공부하다 지치면20~30분 정도 잠깐 자거나 바람을 쐬는 등 자율적으로 휴식도 취할 수 있다. 9 to 9 공부 소감한마디로 말하자면 "생각보다 정말 할만하다" 매일 아..
코드카타 햄버거 만들기 문제 햄버거는 (빵 - 야채 - 고기 - 빵)으로 쌓여있고,빵은 1, 야채는 2, 고기는 3에 해당하므로 햄버거는 1231에 해당한다. 재료 리스트에서 포장할 수 있는 최대 햄버거의 개수를 구한다. 입출력 예시 첫번째 재료로는 아래와 같은 과정으로 햄버거 2개를 만들 수 있다.[2, 1, 1, 2, 3, 1] > 햄버거 추가 > [2, 1] > 재료추가 > [2, 1, 2, 3, 1] > 햄버거 추가 > [2] 의 두번째 재료로는 햄버거를 하나도 만들 수 없다. 정답class Solution { fun solution(ingredient: IntArray): Int { var res = 0 // 만들 수 있는 햄버거 개수 val ..
코드카타 둘만의 암호 문제 정답class Solution { fun solution(s: String, skip: String, index: Int): String { var result = "" val alp = "abcdefghijklmnopqrstuvwxyz" val remainAlp = alp.filter { it !in skip } // skip을 제외한 알파벳 리스트 // 문자열 s를 순회하며 조건에 따라 res에 값추가 for (sa in s) { if (sa in remainAlp) { // s의 요소가 reaminAlp에 존재하는지 확인 // 해당 문자에..