분류 전체보기 385

[프로그래머스 코딩테스트] 왼쪽 오른쪽(Java)

문제 설명 문자열 리스트 str_list에는 "u", "d", "l", "r" 네 개의 문자열이 여러 개 저장되어 있습니다. str_list에서 "l"과 "r" 중 먼저 나오는 문자열이 "l"이라면 해당 문자열을 기준으로 왼쪽에 있는 문자열들을 순서대로 담은 리스트를, 먼저 나오는 문자열이 "r"이라면 해당 문자열을 기준으로 오른쪽에 있는 문자열들을 순서대로 담은 리스트를 return 하도록 solution 함수를 완성해주세요. "l"이나 "r"이 없다면 빈 리스트를 return 합니다. 제한사항 1

[프로그래머스 코딩테스트] 날짜 비교하기(Java)

문제 설명 정수 배열 date1과 dete2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다. 만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요. 제한사항 date1의 길이 = date2의 길이 = 3 0

[프로그래머스 코딩테스트] 무작위로 K개의 수 뽑기(Java)

문제 설명 랜덤으로 서로 다른 k개의 수를 저장한 배열을 만드려고 합니다. 적절한 방법이 떠오르지 않기 때문에 일정한 범위 내에서 무작위로 수를 뽑은 후, 지금까지 나온적이 없는 수이면 배열 맨 뒤에 추가하는 방식으로 만들기로 합니다. 이미 어떤 수가 무작위로 주어질지 알고 있다고 가정하고, 실제 만들어질 길이 k의 배열을 예상해봅시다. 정수 배열 arr가 주어집니다. 문제에서의 무작위의 수는 arr에 저장된 순서대로 주어질 예정이라고 했을 때, 완성될 배열을 return 하는 solution 함수를 완성해 주세요. 단, 완성될 배열이 길이가 k보다 작으면 나머지 값을 전부 -1로 채워서 return 합니다. 제한사항 1

[프로그래머스 코딩테스트] K번째수(Java)

문제 설명 배열 array의 i번째 숫자부터 j번째 숫자까지 자르고 정렬했을 때, k번째에 있는 수를 구하려 합니다. 예를 들어 array가 [1, 5, 2, 6, 3, 7, 4], i = 2, j = 5, k = 3이라면 array의 2번째부터 5번째까지 자르면 [5, 2, 6, 3]입니다. 1에서 나온 배열을 정렬하면 [2, 3, 5, 6]입니다. 2에서 나온 배열의 3번째 숫자는 5입니다. 배열 array, [i, j, k]를 원소로 가진 2차원 배열 commands가 매개변수로 주어질 때, commands의 모든 원소에 대해 앞서 설명한 연산을 적용했을 때 나온 결과를 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 array의 길이는 1 이상 100 이하입니다. a..

[프로그래머스 코딩테스트] 소인수분해(Java)

문제 설명 소인수분해란 어떤 수를 소수들의 곱으로 표현하는 것입니다. 예를 들어 12를 소인수분해하면 2 * 2 * 3으로 나타낼 수 있습니다. 따라서 12의 소인수는 2와 3입니다. 자연수 n이 매개변수로 주어질 때 n의 소인수를 오름차순으로 담은 배열을 return 하도록 solution 함수를 완성해주세요. 제한사항 2

[프로그래머스 코딩테스트] 코드 처리하기(Java)

문제 설명 문자열 code가 주어집니다. code를 앞에서부터 읽으면서 만약 문자가 "1"이면 mode를 바꿉니다. mode에 따라 code를 읽어가면서 문자열 ret을 만들어냅니다. mode는 0과 1이 있으며, idx를 0부터 code의 길이 - 1까지 1씩 키워나가면서 code[idx]의 값에 따라 다음과 같이 행동합니다. mode가 0일 때 code[idx]가 "1"이 아니면 idx가 짝수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. code[idx]가 "1"이면 mode를 0에서 1로 바꿉니다. mode가 1일 때 code[idx]가 "1"이 아니면 idx가 홀수일 때만 ret의 맨 뒤에 code[idx]를 추가합니다. code[idx]가 "1"이면 mode를 1에서 0으로 바꿉니다..

[프로그래머스 코딩테스트] 세 개의 구분자(Java)

문제 설명 임의의 문자열이 주어졌을 때 문자 "a", "b", "c"를 구분자로 사용해 문자열을 나누고자 합니다. 예를 들어 주어진 문자열이 "baconlettucetomato"라면 나눠진 문자열 목록은 ["onlettu", "etom", "to"]가 됩니다. 문자열 myStr이 주어졌을 때 위 예시와 같이 "a", "b", "c"를 사용해 나눠진 문자열을 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요. 단, 두 구분자 사이에 다른 문자가 없을 경우에는 아무것도 저장하지 않으며, return 할 배열이 빈 배열이라면 ["EMPTY"]를 return 합니다. 제한사항 1

[Spring] 2. 기초 지식 배우기

어떤 기능을 구현하고자 할 때, 기능을 구현하는 것은 중요하지만 한 기능에 초점을 맞춰 코드를 작성하는 것은 바람직하지 않습니다. 기능을 추가하거나 변경하는 경우 수정이 어려울 수 있기 때문입니다. 대신 클래스가 인터페이스를 의존하게 해서 프로그램 전체에서의 수정이 아닌, 인터페이스에서 부분만을 수정하는 것만으로도 원하는 결과를 얻을 수 있습니다. 독립적인 프로그래밍이 가능한 것입니다. 인터페이스는 상수와 메서드 타입만 정의한 것입니다. 일종의 추상 클래스인 셈입니다. 인터페이스는 다른 클래스에서 구현하는 것을 전제로 만들어집니다. 클래스는 상속받을 때 extends를 쓰지만, 인터페이스는 implements를 씁니다. 자바에서는 원칙적으로 다중 상속을 허용하지 않지만, 인터페이스를 이용하여 다중 상속을..

Java/Spring 2023.05.26