JAVA/Coding Test 114

[JAVA] 프로그래머스 풍선터트리기_구현

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/68646 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  접근 :    - 풍선의 갯수가 1인 경우 = 1개만 가능   - 풍선의 갯수가 2 인 경우 = 1개를 제거 할 수 있으므로 2개 가능   - 풍선의 갯수가 3개 이상인 경우   1. 좌측 중간 우측 으로 나뉠 수 있음   2. 만약 첫 번째 풍선인 경우 우측의 최소값 1개를 제외하고 나머지는 모두 터트릴 수 있으므로 가능 ( 1개를 제거할 수 있으므로 )   3. 만약 마지막 풍선인 경우 좌측의 최소값 1개를 제외하고 나머지는 모두..

JAVA/Coding Test 2024.11.04

[JAVA] 백준 가장 긴 증가하는 부분 수열 2_이분탐색

문제 : https://www.acmicpc.net/problem/12015   접근 :    - 빈 증가하는 부분 수열 (res) 리스트를 만든다.   - 입력값이 들어오면 증가하는 부분수열(res)을 2진 탐색 하여 집어 넣을 idx를 찾아낸다.   - 만약, 입력값과 동일한 값이 있으면 그 idx를 출력한다.   - 만약 입력값이 res 의 크기보다 큰경우 res에 가장 뒤에 추가해준다.   - 만약 입력값의 집어넣을 위치에 이미 다른 값이 있으면 둘 중 더 작은값으로 갱신한다.   - 입력 끝까지 위의 과정을 반복한 후 증가하는 부분수열(res)의 크기를 출력한다.    코드 구현 : import java.io.BufferedReader;import java.io.InputStreamReader;..

JAVA/Coding Test 2024.10.30

[JAVA] 프로그래머스 가장긴 팰린드롬_브루트포스

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/12904 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr 접근 1:   - 길이를 기준으로 입력값의 길이값 부터 1이 될 때까지, 해당 길이의 팰린드롬 문자열이 있는지 확인한다.   - 만약 팰린드롬 문자열을 발견하면 해당값을 출력한다.    코드 구현 :  class Solution { private boolean recFunc(String s, int target){ if(target == 1) return true; int half_len = target/..

JAVA/Coding Test 2024.10.29

[JAVA] 프로그래머스 디스크 컨트롤러_우선순위큐

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/42627 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  접근 :   - 대기 우선순위 큐를 생성하여 요청을 받은 시간을 오름차순 기준으로 저장   - 만약 대기 큐의 원소 중 시작시간이 현재시간 이전이면 모두 처리 우선순위 큐에 저장(소요되는 시간이 짧은 순)   -  처리 큐에 작업이 있다면 처리하고 현재시간과 소요시간을 모두 갱신한다.   - 만약 처리 큐에 작업이 없다면 현재 시간을 처리 큐의 첫번째 원소의 시작시간으로 갱신한다.   - 대기 우선순위 큐와 처리 우선순위 큐가 모두 ..

JAVA/Coding Test 2024.10.28

[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

[JAVA] 프로그래머스 양궁대회_구현

문제 :  https://school.programmers.co.kr/learn/courses/30/lessons/92342 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  문제 설명 :    - 어피치가 n 발을 사격한 후 라이언이 n 발을 사격한다.   - 양궁의 과녁판은 0 ~ 10 점까지 구역별로 존재한다.   - 만약, 10점에 라이온과 어피치가 같은 화살을 맞추면 어피치가 10점을 획득한다.   - 만약, 5 점에 라이온만 맞춘다면 해당 점수에 맞춘 화살의 갯수가 라이온이 더 많으므로 해당 점수를 획득한다.   - 어피치의 화살의 결과를 확인한 후..

JAVA/Coding Test 2024.09.25