JAVA/Coding Test 115

[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

[JAVA] 백준 1182 부분수열의 합_브루트포스

https://www.acmicpc.net/problem/1182 접근 :   - 각 숫자를 더하는 경우와 더하지 않는 경우로 분리 해서 DFS 시행 - DFS 마지막에 목표값과 동일한 경우 result + 1    코드구현 :  import java.io.*;public class Main { private static int n; private static int target; private static int[] nums; private static int result; static void input() throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System..

JAVA/Coding Test 2024.05.18

[JAVA] 백준 14888 연산자 끼워넣기_브루트포스

https://www.acmicpc.net/problem/14888 접근 :     - 입력 받은 수를 이용하여 DFS 방식으로 모든 경우의 수를 확인  - 입력 받은 연산자 수를 고려하여, 가능한 경우에만 연산을 실행하고 최댓값과 최소값을 출력  코드구현 : import java.io.*;public class Main { private static int n; private static int max; private static int min; private static int[] nums; private static int[] ops; private static StringBuilder sb; static void input() throws IOException..

JAVA/Coding Test 2024.05.18

[JAVA] 백준 4673 셀프 넘버_브루트포스

https://www.acmicpc.net/problem/4673 4673번: 셀프 넘버 셀프 넘버는 1949년 인도 수학자 D.R. Kaprekar가 이름 붙였다. 양의 정수 n에 대해서 d(n)을 n과 n의 각 자리수를 더하는 함수라고 정의하자. 예를 들어, d(75) = 75+7+5 = 87이다. 양의 정수 n이 주어졌을 때, www.acmicpc.net 접근 : - 자기 자신과 각자리 수를 합하는 d(n) 메서드를 정의한다. - 지정된 범위 내 생성자 숫자들을 작성한다. - 범위 내 숫자들을 검사하여 생성자 여부를 확인 후 출력한다. 코드구현 : public class SelfNumber { static class Prac { int n; boolean[] selected; private Stri..

JAVA/Coding Test 2024.02.04

[JAVA] 백준 7785 회사에 있는 사람_집합과 맵

https://www.acmicpc.net/problem/7785 7785번: 회사에 있는 사람 첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 www.acmicpc.net 접근 : - 출입 기록 수 n 을 입력받는다. - 한줄의 출입한 사람의 이름이 입력과 enter / leave 가 입력된다. - 현제 회사에 있는 사람의 이름이 알파벳 역순으로 출력된다. - 출입한 사람의 이름을 map에 key로 등록하고 value로 출입 여부가 기록된다. - map 에 value가 enter 인 사람을 배열로 꺼내고 정렬을 한 후 화면에 ..

JAVA/Coding Test 2023.04.17

[JAVA] 백준 14215 세 막대_기하: 직사각형과 삼각형

https://www.acmicpc.net/problem/14215 14215번: 세 막대 첫째 줄에 a, b, c (1 ≤ a, b, c ≤ 100)가 주어진다. www.acmicpc.net 접근 : - 길이 3개를 입력 받는다. - 길이를 정렬하여 가장 큰 길이의 수를 찾는다. - 나머지 두 변의 길이의 합 < 가장 큰 길이 조건에 해당하면 그대로 둘레를 구하고 조건에 해당하지 않으면 가장 큰 길이의 변 = 나머지 두변의 길이의 합 - 1 로 수정하여 둘레를 구한다. 코드 구현 : import java.io.*; public class Main { static class Triangle { private int a; private int b; private int c; // 가장 긴 변이 c publ..

JAVA/Coding Test 2023.04.13