본문 바로가기

[TIL][내일배움캠프]

(87)
[내일배움캠프][TIL] 23.11.28 (화) - 2016년, 객체지향 프로그래밍 기초 1. 코드카타 오늘 푼 문제는 '2016년'이다. 2016년 2016년 1월 1일은 금요일이다. 이 때, a월 b일은 무슨 요일인지 return하는 solution 함수를 작성하기. ※ 2016년은 윤년이다. 역시나 String 문제 중 하나이다. 그렇지만 여느 문자열 문제와는 달리 수학적으로 접근할 수 있는 문제라서 나름 수월하다. 이번 문제의 문제점은 딱 하나다. 어떻게 깔끔하게 풀 수 있는가? 사실, 이 문제를 푸는 방법 자체는 매우 간단하다. 다만, 굉장히 노가다가 가미되고, 깔끔하지가 않아서 그렇게 썩 내키지 않아서 그렇지. 참고로, 그게 뭐냐면. class Solution { fun solution(a: Int, b: Int): String { var answer = "" var date: I..
[내일배움캠프][TIL] 23.11.27 (월) - K번째수 정렬, Kotlin 문법 기초 1. 코드카타 오늘 푼 알고리즘 문제는 'K번째수 정렬'이다. K번째수 정렬 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 한다. 배열 array, [i,j,k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return하도록 solution 함수를 작성하기. 이번주에는 저번주에 피드백했던 대로, String 타입과 Array 타입에 대한 문제 위주로 풀어볼 예정이다. 그 첫번째 대상이 바로 이것. 일단 이걸 어떻게 풀어야하는지 간략하게 정리해보자. 우선 commands의 각 행마다 [i,j,k]가 주어져 있고, 이 i,j,k를 이용하여 a..
[내일배움캠프][TIL] 23.11.24 (금) - 콜라 문제, 앱개발 강의 1. 코드카타 오늘 푼 알고리즘 문제는 '콜라 문제' 이다. 콜라 문제 콜라를 받기 위해 마트에 주어야 하는 병 수 a, 빈 병 a개를 가져다 주면 마트가 주는 콜라 병 수 b, 가지고 있는 빈 병의 개수 n이 매개변수로 주어질 때, 받을 수 있는 콜라의 병 수를 return하는 solution 함수 작성하기. 예전에 한 번 본 적이 있던 유형의 문제다. 빈 병을 가져와서 새 콜라를 받아먹고, 다 먹고 남는 콜라병으로 또 바꿔먹고, 그렇게 골수까지 빨아먹는. 이 문제는 그걸 일반화시켜서 함수로 표현하는 문제다. 우선 이 콜라 문제의 메커니즘은 다음과 같다. 빈 병 n개를 가져다 주면, 빈 병 a개 당 b개의 콜라를 준다. 따라서 남는 콜라병의 개수는 n을 a로 나눈 몫에 b를 곱한 값과, 그 나머지를 더..
[내일배움캠프][TIL] 23.11.23 (목) - 기사단원의 무기, 개발자의 마음가짐 1. 코드카타 오늘 내가 푼 알고리즘 문제는 '기사단원의 무기'이다. 기사단원의 무기 어후. 이번에는 문제 길이부터 장난이 아니다. 문제를 제대로 이해하는 것부터 시작이었다. 내 나름대로 꼼꼼하게 읽어보면서 문제를 정리해봤다. 기사단원은 number 명이 있으며, 1번부터 number번까지 순서대로 번호를 부여한다. 기사단원은 자신이 부여받은 번호에 대한 약수의 개수에 해당하는 공격력을 가진 무기를 사야 한다. 단, 그 공격력이 limit보다 클 경우, 그 기사단원은 공격력이 power만큼인 무기를 사야 한다. 이 때, 대장장이가 모든 기사단원의 무기를 만드는 데 필요한 철의 양을 return하는 solution 함수를 완성하기(철의 양은 공격력 1당 1kg.) 이를 토대로, 이번에 내가 풀어야 하는 건..
[내일배움캠프][TIL] 23.11.22 (수) - 소수 만들기, Git / Github 기초 1. 코드카타 오늘 내가 푼 알고리즘 문제는 '소수 만들기' 이다. 소수 만들기 숫자들이 들어있는 배열 nums가 매개변수로 주어질 때, nums에 있는 숫자들 중 서로 다른 3개를 골라 더했을 때 소수가 되는 경우의 개수를 return하도록 solution 함수를 완성하기 ex) nums = [1, 2, 3, 4] -> result = 1 (1+2+4 = 7) nums = [1, 2, 7, 6, 4] -> result = 4 (1+2+4 = 7, 1+6+4 = 11, 2+7+4 = 13, 7+6+4 = 17) 우선은 nums에 있는 숫자들 중 서로 다른 3개를 골라서 더하는 코드부터 짰다. for (i in nums.indices){ for (j in i+1 until nums.size){ for (k..
[내일배움캠프][TIL] 23.11.21 (화) - 두 개 뽑아서 더하기, it 1. 코드카타 오늘 내가 푼 알고리즘 문제는 '두 개 뽑아서 더하기' 이다. 두 개 뽑아서 더하기 정수 배열 numbers가 주어질 때, numbers에서 서로 다른 인덱스에 있는 두 개의 수를 뽑아 더해서 만들 수 있는 모든 수를 배열에 오름차순으로 담아 return하도록 solution 함수를 완성하기. ex) numbers = [2, 1, 3, 4, 1] -> result = [2, 3, 4, 5, 6, 7] numbers = [5, 0, 2, 7] -> result = [2, 5, 7, 9, 12] 우선은 '서로 다른 인덱스에 있는 두 개의 수를 뽑아서 더하는' 코드부터 짜기로 하자. for (i in 0 until numbers.size){ for (j in i+1 until numbers.si..
[내일배움캠프][TIL] 23.11.20 (월) - 숫자 문자열과 영단어, Git/Github 드디어 내일배움캠프 Android 2기 과정이 시작되었다. 오늘부터 약 4개월 동안 진행하는데, 이 기간 동안 내가 배운 내용들을 정리하기 위해서 TIL (Today I Learned)을 작성하려 한다. 1. 코드카타 Kotlin 문법에 대한 이해도 도울 겸 매일 1시간 가량 알고리즘 문제를 1~2개 씩 풀어보고자 한다. 오늘 푼 알고리즘 문제는 '숫자 문자열과 영단어' 이다. 숫자 문자열과 영단어 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어질 때, s가 의미하는 원래 숫자를 return하도록 solution 함수를 완성하기. ex) s = "one4zeroeight" -> 이것을 다시 "1408"로 변환시키기 처음 이 문제를 보고 나서 '문자열을 ..