전체 글 (432) 썸네일형 리스트형 [Spring Boot] IoC/DI IoC란?IoC는 Inversion of Control의 약자로, 제어의 역전이라는 뜻을 가지고 있습니다.자바에서 객체를 생성하기 위해서는 필요한 곳에서 직접 생성을 합니다.public class A { B b = new B();} 제어의 역전(IoC)은 다른 객체를 직접 생성하거나 제어하는 것이 아니라, 외부에서 관리하는 객체를 가져와 사용하는 것을 말합니다. 외부에서 객체 가져오기public class A { private B b;}이전과 다르게 new 키워드를 사용하지 않으며, B 객체를 직접 생성하는 것이 아니라 외부에서 객체를 받아와서 사용하고 있습니다. 쉽게 설명하기 위해 "외부"라고 표현했지만, 정확하게는 스프링의 스프링 컨테이너에서 객체를 받아와서 사용하고 있습니다. DI란?D.. [컴퓨터 구조] 레지스터 종류와 특징 레지스터란?레지스터는 CPU의 임시 저장 장치입니다. 데이터와 명령어를 실행 전후로 레지스터에 저장하며 사용합니다. 레지스터의 역할레지스터는 다양한 종류가 있으며 각기 다른 역할과 특징을 가지고 있습니다. 이번에는 공통적으로 CPU에서 사용되는 8개의 레지스터를 설명하겠습니다. 레지스터의 종류 8가지프로그램 카운터 (PC)명령어 레지스터 (IR)메모리 주소 레지스터 (MAR)메모리 버퍼 레지스터 (MBR)플래그 레지스터 (FR)범용 레지스터 (GPR)스택 포인터 (SP)베이스 레지스터 (BR)프로그램 카운터 (Program Counter, PC)Program Counter는 다음에 실행할 명령어의 메모리 주소를 가지고 있는 레지스터입니다. 현재 실행 중인 명령어의 메모리 주소가 4번지라면, 프로그램 카운.. [프로그래머스] 의상 코드 힌트HashMap 사용: 의류의 종류별 개수를 저장하기 위해 HashMap을 사용합니다.조합 계산: 각 의류 종류별로 (의류 수 + 1)을 곱하여 모든 조합을 계산합니다. 여기서 +1은 해당 종류의 의류를 선택하지 않는 경우를 포함합니다.모든 종류를 선택하지 않는 경우 제외: 모든 조합에서 하나도 선택하지 않는 경우를 제외하기 위해 최종 결과에서 -1을 합니다.수학적 힌트이 문제는 조합을 다루는 문제입니다. 각 종류의 의상은 선택하거나 선택하지 않을 수 있습니다. 예를 들어, 두 종류의 의상(모자, 상의)이 있을 때, 각각 두 개의 옵션(착용하지 않음, 착용)이 있습니다. 이는 아래와 같은 조합을 형성합니다:모자를 착용하지 않음, 상의를 착용하지 않음모자를 착용하지 않음, 상의를 착용모자를 착용, .. [프로그래머스] 타겟넘버 깊이 우선 탐색(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); .. 이전 1 ··· 47 48 49 50 51 52 53 54 다음