본문 바로가기

728x90

전체 글

(405)
[프로그래머스] 타겟넘버 깊이 우선 탐색(DFS)으로 목표 값 찾기이 문제는 주어진 정수 배열 numbers와 목표 값 target을 사용하여 배열의 각 요소를 더하거나 빼는 모든 가능한 방법을 탐색하여 목표 값과 일치하는 경우의 수를 찾는 문제입니다.문제 풀이이 문제를 해결하기 위해 DFS(깊이 우선 탐색) 방법을 사용했습니다. 각 숫자를 더하거나 빼는 두 가지 선택지를 재귀적으로 탐색하여 목표 값과 일치하는 경우를 찾습니다.핵심 포인트재귀 함수 사용: 재귀 함수를 사용하여 모든 가능한 합계를 탐색합니다.기저 사례: 배열의 모든 숫자를 사용한 경우, 현재 합계가 목표 값과 일치하는지 확인합니다.재귀 호출: 각 숫자를 더하거나 뺀 두 가지 경우를 재귀적으로 탐색하여 결과를 합산합니다. 정답은 더보기 클릭 더보기class Solu..
[Java] 배열 배열이란같은 타입의 데이터들을 하나로 묶어 넣은 것입니다.변수가 하나의 박스에 값을 넣는 것을 예시로 들 수 있다면, 배열은 여러 개의 박스가 순차적으로 나열된 것입니다.배열 선언// 자료형[] 배열이름int[] intArrString[] strArrboolean[] isArr배열은 같은 타입의 데이터들을 하나로 묶어 놓은 것입니다. 그러므로 어떤 타입인지 미리 선언을 해주어야 합니다.배열 생성배열을 선언했지만, 생성은 되지 않았습니다. 배열을 생성하기 위해서는 new 키워드를 사용합니다.// 자료형[] 배열이름 = new 자료형[크기];int[] intArr = new int[3]; // 3의 크기인 int 배열 생성int size = 10;int[] intArr2 = new int[size]; // ..
[프로그래머스] 가까운 1 찾기 코드 힌트배열 순회: 주어진 인덱스부터 배열의 끝까지 반복문을 사용하여 순회합니다. 이렇게 하면 특정 위치부터 배열을 검사할 수 있습니다.for (int i = idx; i 조건문 사용: 배열의 요소가 1인지 확인하는 조건문을 사용하여 원하는 값을 찾습니다. 조건이 참이면 해당 인덱스를 반환합니다.if (arr[i] == 1) // 현재 요소가 1인지 확인 return i; // 현재 인덱스를 반환기본 반환 값 설정: 반복문이 끝날 때까지 원하는 값을 찾지 못하면 -1을 반환합니다. 이는 주어진 인덱스 이후에 1이 없는 경우를 처리합니다.  정답은 더보기 클릭더보기더보기class Solution { public int solution(int[] arr, int idx) { ..
[프로그래머스] 최댓값 만들기(2) 코드 힌트배열 정렬: 배열을 정렬하면 가장 작은 값들과 가장 큰 값들을 쉽게 찾을 수 있습니다. 이를 통해 음수와 양수 곱셈 결과를 계산할 수 있습니다.Arrays.sort(numbers); // 배열을 오름차순으로 정렬음수와 양수 곱셈 결과: 정렬된 배열에서 가장 작은 두 수와 가장 큰 두 수를 선택하여 곱셈 결과를 계산합니다. 음수와 음수를 곱하면 양수가 되므로, 양수 두 개의 곱셈 결과보다 클 수 있습니다.int negativeNumberMul = numbers[0] * numbers[1]; // 가장 작은 두 수의 곱셈int positiveNumberMul = numbers[len-1] * numbers[len-2]; // 가장 큰 두 수의 곱셈최대 값 반환: 두 곱셈 결과 중 더 큰 값을 반환..
[프로그래머스] 직각삼각형 출력하기 코드 힌트for 문 사용하기: for 문은 반복문으로, 특정 조건이 참인 동안 코드를 반복 실행합니다. 여기서는 1부터 n까지 반복하여 별을 출력합니다.for (int i = 1; i repeat 메서드 사용하기: String 클래스의 repeat 메서드는 문자열을 주어진 횟수만큼 반복하여 새로운 문자열을 반환합니다. 예를 들어, "*".repeat(3)은 "***"을 반환합니다."*".repeat(3); // "***" 반환   정답은 더보기 클릭더보기import java.util.Scanner;public class Solution { public static void main(String[] args) { Scanner sc = new Scanner(System.in); ..
[프로그래머스] 인덱스 바꾸기 코드 힌트문자열을 배열로 변환하기: 문자열을 배열로 변환하면 각 문자를 개별적으로 다룰 수 있습니다. 이를 위해 split 메서드를 사용하여 문자열을 배열로 변환했습니다. split 대신 다른 방법도 사용할 수 있습니다.다른 방법들StringBuilder 사용하기: StringBuilder는 문자열을 효율적으로 조작할 수 있도록 도와줍니다. charAt과 setCharAt 메서드를 사용하여 문자를 교환할 수 있습니다.toCharArray 사용하기: toCharArray 메서드를 사용하면 문자열을 문자 배열로 변환할 수 있습니다. 이를 통해 문자를 교환한 후 다시 문자열로 변환합니다.문자 교환하기: 배열 내의 특정 위치에 있는 문자를 서로 교환하기 위해 임시 변수를 사용하여 값을 저장하고 교환합니다.자바에..
[프로그래머스] ad 제거하기 코드 설명 및 힌트이 코드는 문자열 배열에서 특정 문자열을 필터링하는 기능을 수행합니다. 예제에서는 문자열 배열 strArr에서 "ad"를 포함하지 않는 문자열만을 추출하여 새로운 배열로 반환합니다.주요 코드 설명ArrayList 사용하기:배열의 크기를 미리 알 수 없을 때는 ArrayList를 사용하는 것이 편리합니다. ArrayList는 동적으로 크기가 조정되는 배열과 유사합니다.// import 필수import java.util.ArrayList;ArrayList 선언ArrayList 배열이름 = new ArrayList();반복문을 통한 문자열 필터링:for-each 반복문을 사용하여 배열의 각 원소를 검사합니다. 이 때, 조건에 맞지 않는 문자열은 ArrayList에 추가합니다.for (Stri..
[Spring Boot] 유효성 검사와 예외 처리를 통한 API 구현 기존 문제점기존 포스트에서 작성한 서비스 로직에서는 두 가지 문제점이 있습니다:서비스 로직 내에서 오류 처리를 수행한다: 이로 인해 코드가 복잡해지고 가독성이 떨어집니다.오류 발생 시 상태 코드 200을 반환한다: 클라이언트는 오류가 발생했음에도 불구하고 정상 응답으로 인식할 수 있습니다.이 문제를 해결하기 위해 ResponseEntity를 사용하여 상태 코드를 적절하게 설정하고, ExceptionHandler를 사용하여 예외 처리를 분리하는 방법을 적용해 보겠습니다.Step 1: ResponseEntity를 활용한 상태 코드 설정먼저, ResponseEntity를 사용하여 상태 코드를 반환하도록 변경하겠습니다. 이렇게 하면 오류 발생 시 적절한 상태 코드를 반환할 수 있습니다.변경된 StudentVal..

728x90