분류 전체보기 123

백준 16928 뱀과 사다리 게임 [JAVA]

https://www.acmicpc.net/problem/16928  시간 제한메모리 제한제출정답맞힌 사람정답 비율1 초512 MB47405173931329833.847%문제뱀과 사다리 게임을 즐겨 하는 큐브러버는 어느 날 궁금한 점이 생겼다.주사위를 조작해 내가 원하는 수가 나오게 만들 수 있다면, 최소 몇 번만에 도착점에 도착할 수 있을까?게임은 정육면체 주사위를 사용하며, 주사위의 각 면에는 1부터 6까지 수가 하나씩 적혀있다. 게임은 크기가 10×10이고, 총 100개의 칸으로 나누어져 있는 보드판에서 진행된다. 보드판에는 1부터 100까지 수가 하나씩 순서대로 적혀져 있다.플레이어는 주사위를 굴려 나온 수만큼 이동해야 한다. 예를 들어, 플레이어가 i번 칸에 있고, 주사위를 굴려 나온 수가 4라..

알고리즘 2024.10.26

== 와 equals 차이 , hashcode

equals(Object obj)Object 클래스가 가지고 있는 equals 메서드는 객체의 참조변수를 받아서 비교하여 그 결과를 boolean으로 알려주는 역할을 한다. equals 메서드의 실제 코드   public boolean equals(Object anObject) {        if (this == anObject) {            return true;        }    }  위에 코드에서 알 수 있듯이 두 객체의 같고 다름을 참조변수 값으로 판단한다그렇기 때문에 서로 다른 두 객체를 equals 메서드로 비교하면 항상 false 인 결과로 얻게 된다. public class Test {      public static void main(String[] args) {    ..

JAVA 2024.10.24

백준 16234 인구 이동 [JAVA]

문제N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모든 나라는 1×1 크기이기 때문에, 모든 국경선은 정사각형 형태이다.오늘부터 인구 이동이 시작되는 날이다.인구 이동은 하루 동안 다음과 같이 진행되고, 더 이상 아래 방법에 의해 인구 이동이 없을 때까지 지속된다.국경선을 공유하는 두 나라의 인구 차이가 L명 이상, R명 이하라면, 두 나라가 공유하는 국경선을 오늘 하루 동안 연다.위의 조건에 의해 열어야하는 국경선이 모두 열렸다면, 인구 이동을 시작한다.국경선이 열려있어 인접한 칸만을 이용해 이동할 수 있으면, 그 나라를 오늘 하루 동안은 연합이라고..

알고리즘 2024.10.23

[Java] Call by Value 와 Call by Reference

Call By Value와 Call By ReferenceCall By Value (값에 의한 호출) 인자로 받은 값을 복사하여 처리하는 방식입니다.장점 - 값을 복사하여 처리하기 때문에 원래의 값이 보존됩니다.단점 - 복사하기 때문에 메모리 사용량이 증가합니다.Call By Reference(참조에 의한 호출) 인자로 받은 값의 주소를 참조하여 직접 저장해 값에 영향을 주는 방식입니다. 장점 - 복사하지 않고 직접 참조가 빠릅니다.단점 - 직접 참조를 하기에 원래의 값이 영향을 받는다. 그럼 Java에서는 어느 부분이 call by value이고 어느 부분이 call by reference에 해당하나요?Java의 기본적으로 모든 전달 방식은 Call By Value입니다.참조형의 경우 객체의 '주소값'..

JAVA 2024.10.21

[자바의 신] 정리해봅시다 [1장~ 10장]

1장. 프로그래밍이란 무엇인가?클래스가 뭔가요?클래스는 객체를 만들기 위한 설계도, 틀이라 할 수 있으며 객체를 생성하는 데 사용합니다.객체란? 객체는 클래스에 의해 생성되며 고유의 이름, 상태, 행동을 갖습니다. 여기서 상태는 필드, 행동은 메서드로 표현합니다.메서드가 뭔가요?메서드는 클래스 내의 행동을 제공하는 역할을 수행합니다.메서드의 매개 변수는 어디에 적어주나요?메서드의 매개 변수는 메서드 선언 시 사용하는 소괄호 안에  타입과 변수명 순으로 적어주어야 합니다. 두 개 이상의 매개변수가 있을 경우 콤마로 구분합니다.메서드 이름 앞에 꼭 적어줘야 하는 건 뭐죠?메서드 이름 앞에는 항상 리턴타입을 적어주어야 합니다. 클래스가 갖고 있어야 한다고 한 두 가지가 뭐죠?클래스는 상태(state)와 행동(..

JAVA 2024.10.19

[스프링 핵심 원리 - 기본편] 컴포넌트 스캔 1

컴포넌트 스캔과 의존관계 자동 주입 시작하기지금까지 스프링 빈을 등록할 때는 자바 코드의 @Bean이나 을 통해 설정 정보를 직접 등록할 스프링 빈을 나열했다.예제는 등록해야 할 스프링 빈이 몇 개 안 되었지만 실무에서 수천, 수만 개가 된다면 설정정보도 커지고 개발자가 빈 등록을 누락할 수 도 있다.이를 해결하기 위해 스프링에서 설정정보 (AppConfig.class)가 없어도 자동으로 스프링 빈을 제공하는 컴포넌트 스캔이라는 기능을 제공하다.또 의존관계도 자동으로 주입하는 @Autowired라는 기능도 제한한다.코드로 알아보기!package hello.core;import org.springframework.context.annotation.ComponentScan;import org.springfr..

Spring 2024.10.18

[스프링 핵심 원리 - 기본편] 싱글톤 패턴 1

싱글톤 패턴이란싱글톤 패턴은 인스턴스를 불필요하게 생성하지 않고 오직 하나의 인스턴스만 생성하여 사용하는 디자인패턴이다.즉, 생성자의 호출이 반복적으로 이루어져도 실제로 생성되는 객체는 최초로 생성된 객체를 반환해 주는 것이다.  싱글톤 패턴을 사용하는 이유인스턴스가 단 하나만 존재하는 것을 보증하고 싶은 경우 싱글톤 패턴을 사용한다. 장점메모리 낭비를 방지해 준다이미 생성된 인스턴스를 활용함으로써 속도 측면에서도 장점이 있다.데이터 공유가 쉽다.싱글톤으로 생성된 객체는 전역성을 띄기 때문에 다른 객체와 공유가 용이하다.하지만 만약 여러 클래스의 인스턴스에서 싱글톤 인스턴스의 데이터에 동시에 접근하게 된다면 동시성 문제가 생길 수 있다.단점싱글톤 패턴을 구현하는 코드가 많이 들어간다.의존관계상 클라이언트..

Spring 2024.10.17

백준 11049 행렬 곱셈 순서 [JAVA]

해당 문제는 dp 문제로 규칙만 찾으면 쉽게 풀 수 있는 문제다.생각보다 어려웠다.풀이를 참고하여 풀었지만 너무 어려웠던 만큼 복습을 해보도록 하자문제크기가 N×M인 행렬 A와 M×K인 B를 곱할 때 필요한 곱셈 연산의 수는 총 N×M×K번이다. 행렬 N개를 곱하는데 필요한 곱셈 연산의 수는 행렬을 곱하는 순서에 따라 달라지게 된다.예를 들어, A의 크기가 5×3이고, B의 크기가 3 ×2, C의 크기가 2 ×6인 경우에 행렬의 곱 ABC를 구하는 경우를 생각해 보자.AB를 먼저 곱하고 C를 곱하는 경우 (AB)C에 필요한 곱셈 연산의 수는 5×3×2 + 5×2×6 = 30 + 60 = 90번이다.BC를 먼저 곱하고 A를 곱하는 경우 A(BC)에 필요한 곱셈 연산의 수는 3×2×6 + 5×3×6 = 36..

알고리즘 2024.10.17

[스프링 핵심 원리 - 기본편] 스프링 컨테이너와 스프링 빈 3

다양한 설정 형식 지원 - 자바 코드, XML스프링 컨테이너는 다양한 형식의 설정 정보를 받아들일 수 있게 유연하게 설계되어있다.자바 코드, XML, Groovy 등등애노테이션 기반 자바 코드 설정 사용new AnnotationConfigApplicationContext(AppConfig.class)AnnotationConfigApplicationContext 클래스를 사용하면서 자바코드로 설정된 정보를 넘기면 된다.xml 설정 사용최근에는 스프링 부트를 많이 사용하면서 xml 기반의 설정은 잘 사용하지 않는다. 아직 많은 레거시 프로젝트들이 xml 로 되어있고, 또 xml 을 사용하면 컴파일없이 빈 설정 정보를 변경할 수 있다는 장점이 있으므로 한번쯤 배워두는 것도 괜찮다.GenericXmlApplic..

Spring 2024.10.16