2024/10 15

[JAVA] 프로그래머스 가장 먼 노드_그래프

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/49189 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :   - 입력된 노드의 정보를 양방향 그래프로 저장한다.   - 1 번부터 BFS 로 진행하며 해당거리의 결과를 별도로 저장한다.   - 결과 리스트를 끝에서부터 체크해서 비어 있지 않은 결과의 수를 출력한다.      코드 구현 :  import java.util.*;class Solution { public int solution(int n, int[][] edge) { ..

JAVA/Coding Test 2024.10.16

[JAVA] 프로그래머스 베스트앨범_해쉬

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42579 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 가장 많이 재생된 장르 순대로 앨범을 만든다.   - 앨범은 최대 2곡까지 수록할 수 있으며 만약 1곡만 수록되어 있다면 1곡 만 포함한다.   - 앨범에서 노래의 수록 방법은 재생수가 많은 순으로 수록하며, 만약 재생수가 같다면 고유번호가 작은 순으로 선택한다.  * 문제의 조건에서 장르별 동일한 조회수는 없다고 명시   - 장르 객체를 생성하고 장르 객체안에 노래 객체..

JAVA/Coding Test 2024.10.16

[JAVA] 프로그래머스 이중우선순위큐_힙

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42628 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 최소 힙, 최대 힙, 재고 HashMap을 생성한후 I가 들어올 경우 입력한다.   - 만약 D -1 이 입력으로 들어온 경우 최소 힙에서 1개를 뺀후 뺀 값을 HashMap에서 재고 감소시킨다.   - 만약 D 1 이 들어온 경우 최대 힙에서 1개를 뺀후 뺀값을 HashMap에서 재고 감소 시킨다.   - 최대/최소 힙에서 데이터를 빼는 경우 항상 먼저 재고가 1 이상인..

JAVA/Coding Test 2024.10.15

[JAVA] 프로그래머스 당구 연습_구현

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/169198 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 4개의 벽면에 대해서 쿠션을한 이동거리가 최소가 되는 길이를 찾는다.   - 공에 외력이 없이 직선으로 힘이 가해진다면 입사각과 반사각이 같으므로, 시작하는 지점으로 부터 해당 벽면을 기준으로 대칭인 지점의 좌표의 길이를 구하면 이동거리가 된다.   - 만약 x나, y의 좌표가 같아 직선으로 바로 이동하는 경우에는 쿠션을 할 수 없으므로 해당 경우는 제외한다.      ..

JAVA/Coding Test 2024.10.14

[JAVA] 프로그래머스 유사 칸토어 비트열_분할정복

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/148652 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 문제 설명 :    - N 은 1부터 20까지의 수가 주어진다.   - N이 0 인 경우:  1    - N이 1 이상인 경우:  n-1 번째 수 비트를 순회하면서 1 인경우 11011 로 변경, 0 인 경우 00000 으로 변환한다.   - N = 0 : 1  - N = 1 : 11011  - N = 2 : 11011 11011 00000 11011 11011  - N = 3 : 1101..

JAVA/Coding Test 2024.10.10