본문 바로가기

전체 글373

[JAVA] 프로그래머스 LEVEL2 행렬의 곱셈 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 연습문제 > 행렬의 곱셈 난이도: LEVEL2알고리즘 유형: 구현 (수학: 행렬의 곱셈) 문제 풀이이번 문제는 행렬의 곱셈을 접하지 않았다면 풀 수 없는 문제였다.나 또한 예제에 나온 숫자로 행렬의 곱셈을 추정하면서 푸려고 했으나 포기하고 행렬의 곱셈 공식을 구글링하여 풀었다. arr1 행 길이는 2 arr1 열 길이는 3arr2 행 길이는 3 arr2 열 길이는 2  arr1 열 .. 2024. 10. 17.
[Design Pattern] 싱글톤(Singleton) 패턴 싱글톤 (Singleton) 패턴인스턴스를 오직 한개만 제공하는 클래스 싱글톤(Singleton) 패턴은 특정 클래스의 인스턴스가 오직 하나만 생성되도록 보장하고, 그 인스턴스에 대한 전역 접근을 제공하는 디자인 패턴이다. 이 패턴은 주로 시스템의 전역 상태나 설정 정보를 관리하는 데 사용되며, 인스턴스가 여러 개 존재할 때 발생할 수 있는 문제를 방지한다.  시스템 런타임, 환경 세팅에 대한 정보 등, 인스턴스가 여러개 일 때 문제가 생길 수 있는 경우가 있다. 인스턴스를 오직 한개만 만들어 제공하는 클래스가 필요하다.  싱글톤 패턴을 가장 단순히 구현하는 방법public class Settings {}public class App { public static void main(String[] a.. 2024. 10. 16.
[JAVA] 다이나믹 프록시 스프링 데이터 JPA는 어떻게 동작할까?@Entity@Setterpublic class Book { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) Long id; @Column(name = "TITLE") private String title;}public interface BookRepository extends JpaRepository {}스프링 데이터 JPA에서는 JpaRepository를 상속받기만 하면 별도의 구현체를 제공하지 않아도 자동으로 필요한 메서드들이 동작한다. 이는 스프링의 DI(의존성 주입)와 프록시 패턴을 사용하여 구현된 구조 덕분이다.  프록시 생성스프링 데이터 JPA는 @EnableJpaRepositor.. 2024. 10. 16.
[JAVA] 프로그래머스 LEVEL2 행렬 테두리 회전하기 https://school.programmers.co.kr/learn/courses/30/lessons/77485 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 2021 Dev-Matching: 웹 백엔드 개발자(상반기) > 행렬 테두리 회전하기 난이도: LEVEL2알고리즘 유형: 구현풀이 설명 로직은 간단하다.시계 방향으로 값을 큐에 넣고 큐에 넣기 시작한 시작 좌표로 돌아오면 끝난다. 이제 큐에서 꺼내서 값을 회전 시키는데 기존 시작 좌표 보다 이동 가능한 1템포 빠른 좌표에서 시작한다. 시작 좌표 보다 1칸 오른쪽이 아니라 왜 1템포가.. 2024. 10. 16.
[JAVA] 프로그래머스 LEVEL2 문자열 압축 https://school.programmers.co.kr/learn/courses/30/lessons/60057 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 2020 KAKAO BLIND RECRUITMENT > 문자열 압축 난이도: LEVEL2알고리즘 유형: 구현풀이 설명 나는 스택을 활용해서 문제를 풀었다. Element class static class Element{ int value; String str; public String toString(){ return value + " " + str; .. 2024. 10. 16.
[JAVA] 프로그래머스 LEVEL2 2개 이하로 다른 비트 https://school.programmers.co.kr/learn/courses/30/lessons/77885 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr코딩테스트 연습 > 월간 코드 챌린지 시즌2 > 2개 이하로 다른 비트 난이도: LEVEL2알고리즘 유형: 구현 문제 풀이 처음에는 1씩 증가시켜서 비트 차이가 1~2 차이 나는 숫자를 구할려고 했었다. 하지만 해당 풀이는 테스트케이스 10,11에서 시간 초과가 발생한다. 아마 비트 차이가 1~2인 숫자가 기존 숫자보다 훨씬 커서 시간 초과가 발생하는듯하다. ex) 10111111111111111111.. 2024. 10. 16.