2024/05 41

[JAVA] 백준 과제는 끝나지 않아!_스택

https://www.acmicpc.net/problem/17952  접근 :   - 과제가 들어온 경우 즉시 완료 되는지 확인한다.  - 즉시 완료가 되지 않는 경우, 현재 진행중인 과제에 추가한 후 1회 수행한다.(이전에 진행중인 과제가 있는 경우 stack에 보관)  - 과제가 들어오지 않은 경우, 현재 진행중인 과제가 있으면 진행 후 완료 여부를 확인한다.  - 과제가 완료 될 때마다 점수를 더한 후 출력한다.  코드구현 : import java.io.*;import java.util.*;public class Main { static class Subject{ private int score; private int time; public Subject(..

JAVA/Coding Test 2024.05.31

[JAVA] 프로그래머스 연습 징검다리

https://school.programmers.co.kr/learn/courses/30/lessons/43236 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 :   - 이분 탐색을 사용  - 징검다리에서 정답이 되는 값을 넣어서 빼낸 돌의 갯수가 n개인지 확인  - 빼낸 돌의 갯수가 많다면 예상 정답 값을 내리고, 빼낸 돌의 갯수가 적다면 정답의 값을 올린 후 계속 탐색 진행  - 정답에 도착하면 while 문을 탈출하므로 마지막 값을 정답으로 갱신한 후 출력   코드구현 :  import java.util.*;class Solution { /..

JAVA/Coding Test 2024.05.30

[JAVA] 백준 19583 싸이버 개강총회

https://www.acmicpc.net/problem/19583 접근 :   - 개강시간 전 입력된 메시지 -> 출석 체크인 에 등록(Set)  - 스트리밍 끝난 후 메시지 -> break 시간 순으로 정렬되어 있으므로 더 이상 확인 필요 X  - 총회 끝나기 전 입력된 메시지 -> 특별한 의미가 없으므로 continue   - 총회 끝난 후 부터 스트리밍 끝나기 전 메시지 -> set 을 확인 하면서 출석체크(출석 체크가 끝난 닉네임은 set 에서 제거)  코드구현 :  import java.io.*;import java.util.*;public class Main { public static void main(String[] args) throws IOException{ Buff..

JAVA/Coding Test 2024.05.29

[JAVA] 프로그래머스 연습 요격 시스템

https://school.programmers.co.kr/learn/courses/30/lessons/181188 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :   - 공격 범위의 끝 idx 를 기준으로 오름차순 정렬  - 현재의 공격의 끝지점을 flag 로 지정   - 다음 공격의 시작점이 끝지점 flag 이상일 경우 요격 미사일을 추가하고 끝지점 Flag를 갱신  - 가장 우측의 공격이 끝나면 요격 미사일 갯수 반환   코드구현 :  import java.util.Arrays;class Solution { public int soluti..

JAVA/Coding Test 2024.05.28

[JAVA] 프로그래머스 kakao 순위 검색

https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :   - HashMap>을 사용해서 카테고리에 해당하는 점수 리스트 저장    *  HashMap> 사용 교집합 연산 ( 시간 초과 발생 )     - Query 문에 해당하는 문자열을 key 값으로 HashMap의 리스트를 바로 검색   - 리스트가 정렬되어 있는지 없는지 확인 후, 정렬이 되지 않은 경우 정렬 후 이진 탐색 시작    - 이진 탐색 후 결과 데이터를 정답 배열에 추가   ..

JAVA/Coding Test 2024.05.28

[JAVA] 프로그래머스 연습 석유 시추

https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 접근 :   - 한칸 씩 이동 하면서 석유가 있는지 확인   - 석유가 있는 경우 BFS 사용하여 구역당 석유 매장량 확인  - 석유 매장량 확인 후 Map 에 y 좌표를 기준으로 뽑을 수 있는 매장량 기록 하면서 최대값 저장  - 모든 칸을 확인 후 최대값 출력        코드구현 : import java.util.*;class Oil { private int total; privat..

JAVA/Coding Test 2024.05.24

[JAVA] 프로그래머스 kakao 게임 맵 최단거리

https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :   - 현재 위치에서 동 서 남 북으로 순서대로 갈 수 있는 곳 확인  - 갈 수 있는 경우 Queue 에 추가 후 계속 탐색 진행  - 도착지에 도달하면 거리 계산 후 결과 최소값으로 갱신  - Queue가 빌 때 까지 실행      코드구현 :  import java.util.*;class Position{ private int x; private int y; privat..

JAVA/Coding Test 2024.05.23

[JAVA] 프로그래머스 kakao 키패드 누르기

https://school.programmers.co.kr/learn/courses/30/lessons/67256 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  접근 :   - 키 패드의 위치를 왼손, 오른손 따로 저장  - 1,4,7 은 왼손 3, 6, 9 는 오른손으로 누름  - 2, 5, 8, 0 은 가까운 손으로 누르고, 만약 거리가 같다면 주로 사용하는 손을 사용  - 키패드의 위치를 좌표로 저장하고, 위의 조건 대로 이동하면서 사용한 손의 방향을 출력 1, 9, 5, 8, 2, 0 을 입력하는 경우     코드구현 :  import java.ut..

JAVA/Coding Test 2024.05.23

[JAVA] 백준 1138 한 줄로 서기

https://www.acmicpc.net/problem/1138  접근 :   - 키 순서대로 자신 위치를 찾아서 넣기  - 만약에 누군가 있다면 자신보다 키가 작은 사람이므로 다음으로 진행 후 위치 확인     코드구현 :  import java.io.*;public class Main { private static int n; private static int[] nums; static void input() throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); n = Integer.parseInt(br.readLine()); Str..

JAVA/Coding Test 2024.05.20

[JAVA] 백준 1759 암호 만들기_브루트포스

https://www.acmicpc.net/problem/1759  접근 :   - 주어진 알파벳 C 개중 L 개 뽑기 (중복허용 X)  - 순서는 알파벳 오름차순  - L개를 모두 다 뽑은 후, 모음이 1개 자음이 2개 이상되는 것만 정답으로 출력  코드구현 :  import java.io.*;import java.util.Arrays;public class Main { private static int l; private static int c; private static char[] char_list; private static StringBuilder sb; private static char[] vowel = {'a', 'e', 'i', 'o', 'u'}; sta..

JAVA/Coding Test 2024.05.20