JAVA 130

[JAVA] 프로그래머스 다단계 칫솔 판매_구현

문제 : https://school.programmers.co.kr/learn/courses/30/lessons/77486?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr  접근 :    - 1. 판매한 사원으로 부터 10%의 금액을 제외한 금액을 자신의 Score 에 저장한다. (HashMap)   - 2. 10% 금액은 자신의 추천한 사람에게 전달하고 추천한 사람을 기준으로 1 과정을 진행한다.   - Center 에게 이익금이 갈때까지, 1~2 과정을 반복한다.   - 모든 판매한 사원에 대해서 위의 과정을 반복한 후 결과를 출력한다.    코드 구현 :  import ja..

JAVA/Coding Test 2024.12.03

[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/Regex] 문자열 유효성 패턴 검증

- 조건  1. 문자열은 8 ~ 16자 까지만 가능  2. 알파벳으로 시작  3. 문자열은 알파벳 대소문자, _ , 숫자로 만 가능 - 해당 조건 검증 정규식"^[a-zA-Z][a-zA-Z0-9_]{7,15}$" 정규식 설명:^: 문자열의 시작[a-zA-Z]: 첫 번째 문자는 알파벳 대문자(A-Z) 또는 소문자(a-z) 중 하나[a-zA-Z0-9_]: 두 번째 문자부터는 알파벳 대소문자, 숫자(0-9), 또는 밑줄(_) 중 하나{7,29}: 이전 패턴( [a-zA-Z0-9_])이 7회 이상, 15회 이하 반복됨 ( 첫글짜 1이 포함되어 있으므로 )$: 문자열의 끝을 나타냅니다.  - 전체 코드 public class Example { private static final Scanner scan = ..

JAVA/Regex 2024.10.24

[JAVA/Regex] 중복되는 영어 단어 제거

- 중복되는 영단어 제거 정규식"\\b(\\w+)(\\s+\\1\\b)+" \b:단어의 시작이나 끝 (단어의 경계)공백, 구두점 등과 같은 비단어 문자와 단어 문자(영문자, 숫자 등) 를 구분 가능 (\w+):하나 이상의 단어 문자를 찾습니다.\w는 알파벳 대소문자, 숫자,밑줄(_)을 포함+는 하나 이상의 문자로 이루어진 패턴이 부분은 그룹으로 지정 ( 그룹 1 )(\s+\1\b):\s+: 하나 이상의 공백 문자(스페이스, 탭 등) 찾기\1: 그룹 1 의 내용을 참조하는 역할\b: 단어 경계 전체적으로 작동하는 방식:정규식은 먼저 단어 경계에서 시작하고, 그 다음에 단어 문자가 하나 이상 있는지를 확인합니다. 이 문자는 캡처 그룹 (\w+)에 저장  공백이 최소 하나 이상 있는지를 확인하고, 그 다음에 ..

JAVA/Regex 2024.10.24

[JAVA] 가변인자

가변 인자 ( Variable Arguments )란?   - 메서드의 인자를 가변적으로 받을 수 있도록 하는 기능   - 메서드를 호출할 때 인자의 수가 정해져 있지 않는 경우 (몇 개의 인자를 넘길지 모르는 경우) 에 사용 가능   - 가변 인자는 배열 형태로 메서드에 전달되며, 메서드의 선언에서 ...을 사용하여 표시 가변 인자의 장점    - 유연성: 메서드를 호출하는 쪽에서 인자의 수를 조정가능   - 코드의 가독성: 가변 인자를 사용하면 여러 개의 매개변수를 처리하는 메서드에서 오버로딩을 하지 않아도 됨   - 유지보수 용이성: 인자의 수가 바뀌어도 메서드의 인터페이스를 변경할 필요가 없음  예시 코드 class Solution { public static void add(int... n..

JAVA/Language 2024.10.23

[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