JAVA 130

[JAVA] 백준 1092 도서관_구현

문제 : https://www.acmicpc.net/problem/1461접근 :    - CASE 1 : 마지막에 돌아올 필요가 없으므로 +와 - 방향 중 긴 쪽을 2번째로 이동한다.   - CASE 2 : + 또는 - 한쪽 방향만 존재 할 경우, 1번째 이동은 없다고 보고 2번째 이동을 하는 것 처럼 처리한다.   (돌아올 필요가 없으므로 2번째에 해당)    - CASE 3 : 첫 번째 방향을 이동할 때는 가장 먼 곳부터, 방향 전환이 일어나기 전까지 가장 먼곳을 기준으로 이동한다.   - CASE 4 : 두 번째 방향을 이동할 때는 가장 먼 곳을 기준으로 m 등분 하여 최소가 되는 걸음 수 로 움직인다.   - CASE 5 : 두 번째 방향 이동 후, 돌아올 필요가 없으므로 돌아오는 걸음 수를 계..

JAVA/Coding Test 2024.08.08

[JAVA] 백준 1092 배_최소힙

문제 : https://www.acmicpc.net/problem/1092  접근 :    - Case 1 : 만약 제일 무거운 박스가 트레인 중 가장 높은 허용 무게를 초과하는 경우, -1 반환   - Case 2 : 박스의 무게가 현재 트레인의 허용 무게 이하인 경우, 박스를 남은 트레인을 고려하여 박스를 나눠 분담   - Case 3 : 박스의 무게가 현재 트레인의 허용 무게 보다 높은 경우, 남은 트레인의 수를 고려하여 골고루 분담하는 갯수를 계산   - Case 4 : 만약 트레인이 마지막 트레인이라면, 남은 모든 박스를 이동     코드 구현 :  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStrea..

JAVA/Coding Test 2024.08.06

[JAVA] 백준 1744 수 묶기_최소힙&최대힙

문제 : https://www.acmicpc.net/problem/1744 접근 :    - case 1 : 입력 받은 수 중 음수가 있는 경우, 작은 순서대로 2개 씩 묶어서 곱하면 최대치가 된다.   - case 2 : 만약 0 이 있으면서 음수가 홀수 인 경우, 곱연산을 하면 0 이되므로 곱연산을 해준다.   - case 3 : 입력 받은 수 중 양수가 있는 경우, 1보다 큰 경우에는 큰 수부터 2개씩 묶어서 곱하면 최대치가 된다.   - case 4 : 1 이하의 수는 합 연산을 해서 최대치를 만든다.    코드 구현 :  import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import j..

JAVA/Coding Test 2024.08.05

[JAVA] 백준 1715 카드 정렬하기_최소힙

문제 : https://www.acmicpc.net/problem/1715 접근 :   - 카드 뭉치를 최소 힙에 넣는다.   - 카드에서 최소 뭉치 2개를 꺼내 비교 횟수를 구한다( card1 + card2 )   - 구한 비교 횟수를 다시 최소 힙에 넣고 다음 최소치 뭉치 2개를 꺼내 비교 횟수를 구한다.   - 힙의 사이즈가 1이 될 때까지 반복 후 끝날 때, 까지 비교 횟수를 누적한 합산한 값을 출력한다.    코드 구현 : import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.PriorityQueue;public class Main { private fi..

JAVA/Coding Test 2024.08.05

[JAVA] 프로그래머스 미로탈출_탐색

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/159993 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 입구에서 레버까지 BFS를 사용하여 최단 경로를 구한다. 만약 레버까지 갈 수 없다면 -1 리턴 후 종료   - 레버에서 출구까지 BFS를 사용하여 최단 경로를 구한다. 만약 레버까지 갈 수 없다면 -1 리턴 후 종료   - 위에서 실시한 2번의 탐색 결과의 길이를 서로 합한 후 정답으로 출력한다.  코드 구현 : import java.util.*;class Soluti..

JAVA/Coding Test 2024.08.04

[JAVA] 프로그래머스 전력망을 둘로 나누기_트리

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/86971 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 :    - 양방향 그래프로 트리를 형성   - 모든 노드에서 시작점을 Root로 지정하여서 모든 노드를 순회   - 각각의 Root 노드에서 자식노드의 갯수를 파악하여 해당 간선을  끈었을 때 차를 비교   - 간선을 끈었을 때 서로의 갯수 차가 최소가 되는 값을 정답으로 출력      코드 구현 :  import java.util.*;public class Solution { ..

JAVA/Coding Test 2024.07.30

[JAVA] 프로그래머스 택배상자_stack

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/131704 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :    - 메인 컨베이어의 1부터 n 까지 상자를 대상으로 실행한다.   - order를 확인하여서 order에 해당하는 위치의 상자에 도달하면 트럭에 상자를 넣고 보조 컨베이어의 마지막 상자를 확인하여 order의 다음 순번에 해당하는 상자를 트럭에 넣는다. (다음 순번의 order와 달라지거나 보조 컨베이어가 빌 때까지 반복)   - 만약 order와 다른 상자 일 경우, 보조..

JAVA/Coding Test 2024.07.16

[JAVA] 숫자 변환하기_DP

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/154538 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :  * dp[x] => x 숫자를 만들기 위해서 연산되는 최소 횟수   - x 부터 시작하여 y까지 2배, 3배, +n 연산을 하여 그 결과 값을 배열의 해당 인덱스에 입력한다.   > dp[2*x] = dp[x] + 1   - 만약 해당 인덱스에 값이 이미 존재한다면 현재 계산값과 해당 인덱스의 데이터 값 중 작은 값을 유지한다.   > dp[temp] = (dp[temp] ==..

JAVA/Coding Test 2024.07.12

[JAVA] 프로그래머스 주차 요금 계산_tree map

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/92341 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 :    - 입력 받은 기록이 In 인 경우에는 HashMap에 차량 번호를 key, 입차 시간을 value로 저장한다.   - 입력 받은 기록이 Out 이면 HashMap을 조회해서 주차된 시간을 계산하여 park_time TreeMap에 저장 후 In에서 해당 데이터를 삭제한다.   - 입력 받은 기록을 모두 처리한 후, In에 차량이 남아있으면 23:59 에 출차된 것으로 시간 계..

JAVA/Coding Test 2024.07.10

[JAVA] 백준 1103 게임_DP

문제 : https://www.acmicpc.net/problem/1103  접근 :    - 현재까지의 도달한 값을 dp 에 저장   - 4방향으로 탐색을 실행 후, 만약 다음값이 dp 보다 크다면 더이상 탐색을 진행하지 않는다.   > 이미 다른 경로를 통하여 해당 위치에 왔을때, 이전에 지나온 길이가 긴 것의 결과가 무조건 큰 수가 나오기 때문   >  ex) before + after = res 라고 할때 before 가 큰 res가 무조건 더 크기 때문 (after 는 같은 값)   - 만약 다음 값이 H인 경우에도 더이상 탐색을 진행하지 않는다.   - 방문한 노드를 다시 방문한 경우에는 cyle이 생성되서 무한이므로 -1을 리턴한다.                코드 구현 :  import j..

JAVA/Coding Test 2024.07.06