문제 설명 정수가 담긴 배열 array와 정수 n이 매개변수로 주어질 때, array에 n이 몇 개 있는 지를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ array의 길이 ≤ 100 0 ≤ array의 원소 ≤ 1,000 0 ≤ n ≤ 1,000 입출력 예 입출력 예 설명 [1, 1, 2, 3, 4, 5] 에는 1이 2개 있습니다. [0, 2, 3, 4] 에는 1이 0개 있습니다. 풀이 과정 배열을 순회하면서 해당 숫자가 있는지 확인할 수도 있지만, 배열의 요소들 중 조건에 맞는 값의 개수(size)를 확인한다. 코드 class Solution { fun solution(array: IntArray, n: Int): Int = array.filter { it == n }.s..
문제 설명 머쓱이네 피자가게는 피자를 두 조각에서 열 조각까지 원하는 조각 수로 잘라줍니다. 피자 조각 수 slice와 피자를 먹는 사람의 수 n이 매개변수로 주어질 때, n명의 사람이 최소 한 조각 이상 피자를 먹으려면 최소 몇 판의 피자를 시켜야 하는지를 return 하도록 solution 함수를 완성해보세요. 제한사항 2 ≤ slice ≤ 10 1 ≤ n ≤ 100 입출력 예 입출력 예 설명 10명이 7조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 2판을 시켜야 합니다. 12명이 4조각으로 자른 피자를 한 조각 이상씩 먹으려면 최소 3판을 시켜야 합니다. 풀이 과정 인원수를 피자 수로 나누었을 때의 나머지가 0이라면 모든 인원이 다 피자 1조각씩을 먹는 것이지만, 나머지가 0이 아니라면 1판의..
문제 설명 머쓱이네 피자가게는 피자를 일곱 조각으로 잘라 줍니다. 피자를 나눠먹을 사람의 수 n이 주어질 때, 모든 사람이 피자를 한 조각 이상 먹기 위해 필요한 피자의 수를 return 하는 solution 함수를 완성해보세요. 제한사항 1 ≤ n ≤ 100 입출력 예 입출력 예 설명 7명이 최소 한 조각씩 먹기 위해서 최소 1판이 필요합니다. 1명은 최소 한 조각을 먹기 위해 1판이 필요합니다. 15명이 최소 한 조각씩 먹기 위해서 최소 3판이 필요합니다. 풀이 과정 인원수를 피자 조각인 7로 나누었을 때의 나머지가 0이라면 인원수에 딱 맞거나 충분하지만, 나머지가 0이 아니라면 인원수에 비해 피자가 부족한 것이므로 1을 추가한다. 코드 class Solution { fun solution(n: In..
문제 설명 머쓱이는 학교에서 키 순으로 줄을 설 때 몇 번째로 서야 하는지 궁금해졌습니다. 머쓱이네 반 친구들의 키가 담긴 정수 배열 array와 머쓱이의 키 height가 매개변수로 주어질 때, 머쓱이보다 키 큰 사람 수를 return 하도록 solution 함수를 완성해보세요. 제한사항 1 ≤ array의 길이 ≤ 100 1 ≤ height ≤ 200 1 ≤ array의 원소 ≤ 200 입출력 예 입출력 예 설명 149, 180, 192, 170 중 머쓱이보다 키가 큰 사람은 180, 192, 170으로 세 명입니다. 180, 120, 140 중 190보다 큰 수는 없으므로 0명입니다. 풀이 과정 배열의 개수를 카운트 할 때, 조건으로 나오는 height보다 큰 값을 필터링해서 카운트한 값을 리턴한다..
문제 설명 정수 배열 numbers가 매개변수로 주어집니다. numbers의 각 원소에 두배한 원소를 가진 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 -10,000 ≤ numbers의 원소 ≤ 10,000 1 ≤ numbers의 길이 ≤ 1,000 입출력 예 입출력 예 설명 [1, 2, 3, 4, 5]의 각 원소에 두배를 한 배열 [2, 4, 6, 8, 10]을 return합니다. [1, 2, 100, -99, 1, 2, 3]의 각 원소에 두배를 한 배열 [2, 4, 200, -198, 2, 4, 6]을 return합니다. 풀이 과정 배열을 순회하면서 각 인덱스 마다 값에 2를 곱해주고, 배열을 반환한다. 코드 class Solution { fun solution(number..
문제 설명 정수가 들어 있는 배열 num_list가 매개변수로 주어집니다. num_list의 원소의 순서를 거꾸로 뒤집은 배열을 return하도록 solution 함수를 완성해주세요. 제한사항 1 ≤ num_list의 길이 ≤ 1,000 0 ≤ num_list의 원소 ≤ 1,000 입출력 예 입출력 예 설명 num_list가 [1, 2, 3, 4, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 4, 3, 2, 1]을 return합니다. num_list가 [1, 1, 1, 1, 1, 2]이므로 순서를 거꾸로 뒤집은 배열 [2, 1, 1, 1, 1, 1]을 return합니다. num_list가 [1, 0, 1, 1, 1, 3, 5]이므로 순서를 거꾸로 뒤집은 배열 [5, 3, 1, 1, 1, 0, 1]을 re..
문제 설명 정수 배열 numbers와 정수 num1, num2가 매개변수로 주어질 때, numbers의 num1번 째 인덱스부터 num2번째 인덱스까지 자른 정수 배열을 return 하도록 solution 함수를 완성해보세요. 제한사항 2 ≤ numbers의 길이 ≤ 30 0 ≤ numbers의 원소 ≤ 1,000 0 ≤num1
최근 들어 마이크로 서비스에 관련하여 책을 읽고, 관련 자료를 찾아보고 있다. 그런데 찾아보면서 도메인 주도 설계(DDD)라는 용어가 나오게 되었다. 그래서 DDD에 대해서 한 번 정리해보려고 한다. DDD란? 도메인 주도 설계(DDD, Domain-Driven Design)는 해당 도메인과 일치하도록 소프트웨어를 모델링하는 데에 중점을 둔 소프트웨어 설계 접근 방식이다. 요약하면 도메인 위주로 모델링, 즉 설계해 나아가는 방식을 말한다. Domain이란? 도메인은 소프트웨어나 애플리케이션에서 해결해야하는 문제를 나타낸다. 예를 들어, 택배를 관리하는 프로그램을 만든다고 가정하자. 택배를 주문하는 고객이 있을 수 있고, 판매하는 업체가 있을 수 있으며, 택배 물품을 관리하는 택배사가 존재할 수 있다. 위..
필자는 Back-End를 공부하는 입장에서 어떻게 하면 구조를 좋게 잡을지 고민이 많았다. 기존에는 하나의 프로그램에 모든 기능을 넣어서 실행하는 방식으로 진행해왔다. 실제로 프로젝트를 진행하면서 윗 줄의 내용처럼 진행을 하니, 한쪽에서 문제가 생겨 프로그램이 죽는다면 다른 모든 기능들을 사용할 수 없게 된다. 추가적으로 프로젝트의 규모가 조금씩 커지면서, 유지보수를 할 때 연관되어있는 부분이 있다면 함께 수정해야되서 비교적 까다로웠다. 그래서 프로그램을 개발할 때, 어떻게 구조를 가져가면 좋을지 알아보던 중, MSA라는 아키텍쳐를 알게 되었다. 그래서 이번에 MSA에 대해서 알게된 것, 기존 프로그램의 방식과의 차이점이 무엇인지 알아보려고 한다. 기존의 프로그램 구조, 모놀리식(Monolithic) ..
Spring Boot를 처음 시작하는 입장에서 학생이 아니라면 대부분 Intellij Community 프로젝트를 다운을 받을 것이다. 필자 역시 Spring Boot 공부를 위해서 Intellij Community 버전을 다운 받았다. 그러나 Community 버전은 생각했던 것과는 다르게 Spring Boot 프로젝트를 만들 수 있는 방법이 존재하지 않는다. 그래서 Community 버전에서도 Spring Boot를 시작하는 방법에 대해서 포스팅하려고 한다. Spring Initializr 사용하기 위 헤더글의 이니셜이 틀렸다고 생각할 수도 있다. 그러나 Spring.io 에 접속하면 실제로 Spring Initializr라고 나오니 오해하지 않길 바란다. 아무튼 위 사이트에 접속하면 다음과 같은 화..