전체 글 93

[프로그래머스]최고의 집합 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/12938 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  최근 여러 레벨 3짜리 문제를 다루면서 불신이 생겼다.이게 레벨 3이라고?? 싶은 문제들이 너무 많다.레벨을 볼게 아니라 정답률을 봐야 될 것 같다.(정답률도 뭐..) 직관적으로 느껴지는 것은 n개의 숫자가 거의 똑같아야 될 것이다.그렇다면 s를 n으로 나눈 값을 전부 배열에 넣어주고 s를 n으로 나눈 나머지 값만큼 배열을 순회하며 +1씩 해주면 끝난다.import java.util.*;class ..

Jpa 동작 기본 정리하기

어플리케이션을 구동하면 스프링 프레임워크가 만들 수 있는 객체를 모조리 만든다.@Entity로 클래스를 엔티티화 한다@Id로 기본 키를 설정한다 @GeneratedValue(strategy = GenerationType.IDENTITY) - 오토인크리먼트@Column(nullable = false) - 낫 널오버로딩 생성자 만든다.(오토인크리먼트 되는 id값 빼고) 엔티티화 한 클래스에 관한 interface 생성(xxRepository)xxRepository는 JpaRepository를 상속 받는다.()Jpa에서 어플리케이션 실행 시 구현부를 생성해준다.xx와 관련된 컨트롤러는 @Autowired로 의존성을 주입하여프라이빗으로 참조변수를 멤버변수로 만든다.(xxRepository)오버로딩된 생성자로 파..

JAVA 2024.08.23

[프로그래머스]귤 고르기 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 최소의 종류로 팔려면 가장 개수가 많은 종류부터 차례대로 팔면 될 것이다.귤 종류마다 개수를 구하고 내림차순 정렬하면 된다. import java.util.*;class Solution { public int solution(int k, int[] tangerine) { int answer = 0; Arrays.sort(tangerine); List list =..

[프로그래머스] 점프와 순간 이동 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/12980 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 순간이동 기능은 온 거리 x2 라고 한다.위치가 6일때 생각해보면0 -> 1 점프1 ->2 순간이동2 ->4 순간이동4 ->6 점프로 총 3의 에너지를 사용했다. 하지만 0 -> 1 점프1 ->2 순간이동2 ->3 점프3 ->6 순간이동을 하면 2의 에너지 사용으로 최소 에너지가 된다. 결국 마지막은 점프를 통해 위치에 도달해야만 최소 에너지가 될 수 있다. 역으로 6에서 2로 나눴을 때 33은 2로..

정보통신이론(HTTP)

구글에 아이디와 비밀번호를 입력하여 로그인 한다.내가 보낸 정보들을 구글은 어떻게 알까?구글 본사에 있는 슈퍼 컴퓨터가 받아서 알아내나?아니다. 통신은 컴퓨터와 컴퓨터간에 이루어지는 것이 아니다.프로세스와 프로세스 간의 통신이 이루어진다. 내 컴퓨터에 있는 웹 브라우저 프로세스와 구글의 서버 프로세스 간의 통신으로 로그인 할 수 있다. 프로세스가 네트워크를 사용하기 위해서는 랜카드를 써야한다.내 컴퓨터의 프로세스들은 네트워크 사용을 위해 랜카드를 써야 하는것도 마찬가지이다. 운영체제는 이 프로세스들에게 고유의 번호(포트)와 IP주소를 주어 통신할 수 있게 한다.결국 통신은 우편 시스템과 정확히 동일하다고 볼 수 있다.나의 주소와 프로세스 포트 그리고 데이터를 상대 IP주소와 포트에 보내면 송신할 수 있고..

복제 생성자

복제 생성자(Copy Constructor)는 객체 지향 프로그래밍에서 사용되는 개념으로, 주어진 객체의 필드를 그대로 복사하여 새로운 객체를 생성하는 생성자입니다. 이를 통해 새로운 객체가 생성되면서 기존 객체와 동일한 값들을 가지지만, 서로 독립된 객체로 존재하게 됩니다.복제 생성자의 역할:깊은 복사(Deep Copy): 복제 생성자는 객체의 필드가 참조 타입(예: 객체, 배열 등)일 때, 그 필드를 깊은 복사하여 새로운 객체를 생성할 수 있습니다. 깊은 복사를 통해 원본 객체와 새 객체가 참조하는 필드가 서로 독립적으로 존재하게 됩니다.얕은 복사(Shallow Copy): 반면, 단순한 얕은 복사는 객체의 필드가 참조하는 메모리 주소를 그대로 복사하여 원본 객체와 새 객체가 동일한 필드를 참조하게 ..

JAVA 2024.08.19

List

List는 많이 써보았을 것이다. 다양한 종류의 구현체의 List들이 존재한다.그 중에서도 ArrayList와 LinkedList, Stack을 주로 많이 사용할 것이다. ArrayList의 생성과 초기화는ArrayList arrayList = new ArrayList(); 이다 그런데 이렇게 쓰지않고List arrayList = new ArrayList(); 이렇게 선언하는 경우가 많을 것이다. 상속의 개념을 알아야 이해할 수 있는 코드이다.javadoc에서 ArrayList에 대해 알아보면All Implemented Interfaces:Serializable, Cloneable, Iterable, Collection, List, RandomAccess RandomAccess (Java Platform..

JAVA 2024.08.14

[프로그래머스] 미로 탈출 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  시작, 레버, 출구는 모두 랜덤이며 하나씩만 존재한다.그렇다면 각 세 좌표만 구한다면 bfs로 쉽게 풀 수 있을 것이다. import java.util.LinkedList;import java.util.Queue;class Solution { boolean[][] visited; int[] dx = {0,0,-1,1}; int[] dy = {1,-1,0,0}; public i..

[프로그래머스]의상 -JAVA

https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 코니는 변태인가보다..경우의 수를 생각해보면 어떤 한 종류를 아예 안입는 경우까지 생각하면종류의 아이템 개수 + 1 를 전부 곱해주고 싹 다 벗은 경우를 -1 해주면 될 것이다.import java.util.*;class Solution { public int solution(String[][] clothes) { int answer = 1; Map map = new H..