자바 50

[Java] String 배열 -> int 배열로 변환

알고리즘 풀이 시 n개의 수를 받아 int 배열로 저장해야할때가 많다.코드 상으로 가장 깔끔한 방법은 Stream을 사용하는 것.public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int[] arr = Arrays.stream(br.readLine().split(" ")) // 공백으로 나눈 String 배열을 스트림으로 변환 .mapToInt(Integer::parseInt) // 스트림의 각 문자열 요소를 int로 변환 ..

자바/조각 2025.04.23

[프로그래머스/JAVA] 더 맵게

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42626 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용 : 아래 더보기 더보기 정답 코드 ) 최소힙 사용 import java.util.*; class Solution { public int solution(int[] scoville, int K) { // 매번 sort하지 않아도, min 값을 유지하려면 => min 힙 사용 Queue list = new PriorityQueue(); for(int s : scoville) ..

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

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용 : 아래 더보기 더보기 정답 코드 ) BFS 사용 V 최단거리 구하는 문제는 대부분 BFS 사용해야함, DFS는 최단거리 구하는 문제에 적합하지 않음 import java.util.*; class Solution { class Location { int x, y; Location(int x, int y) { this.x = x; this.y = y; } public bool..

[프로그래머스/JAVA] 타겟 넘버

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용 : 아래 더보기 더보기 정답 코드 ) 재귀 함수 사용 class Solution { public int solution(int[] numbers, int target) { return sumCnt(numbers, target, 0, 0); } // 재귀적으로 숫자를 더하거나 빼면서 타겟 넘버를 만드는 경우의 수를 계산하는 메서드 int sumCnt(final int[] n..

[백준/JAVA] 2606번 : 바이러스

문제 링크 : https://www.acmicpc.net/problem/2606 2606번: 바이러스 첫째 줄에는 컴퓨터의 수가 주어진다. 컴퓨터의 수는 100 이하인 양의 정수이고 각 컴퓨터에는 1번 부터 차례대로 번호가 매겨진다. 둘째 줄에는 네트워크 상에서 직접 연결되어 있는 컴퓨터 쌍 www.acmicpc.net 문제 내용 : 아래 더보기 더보기 - 문제 신종 바이러스인 웜 바이러스는 네트워크를 통해 전파된다. 한 컴퓨터가 웜 바이러스에 걸리면 그 컴퓨터와 네트워크 상에서 연결되어 있는 모든 컴퓨터는 웜 바이러스에 걸리게 된다. 예를 들어 7대의 컴퓨터가 과 같이 네트워크 상에서 연결되어 있다고 하자. 1번 컴퓨터가 웜 바이러스에 걸리면 웜 바이러스는 2번과 5번 컴퓨터를 거쳐 3번과 6번 컴퓨터..

알고리즘/백준 2024.03.28

[백준/JAVA] 24479번 : 알고리즘 수업 - 깊이 우선 탐색 1

문제 링크 : https://www.acmicpc.net/problem/24479 24479번: 알고리즘 수업 - 깊이 우선 탐색 1 첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤ M ≤ 200,000), 시작 정점 R (1 ≤ R ≤ N)이 주어진다. 다음 M개 줄에 간선 정보 u v가 주어지며 정점 u와 정점 v의 가중치 1인 양 www.acmicpc.net 문제 내용 : 아래 더보기 더보기 - 문제 오늘도 서준이는 깊이 우선 탐색(DFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든..

알고리즘/백준 2024.03.28

[프로그래머스/JAVA] 조이스틱

문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/42860 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 문제 내용 : 아래 더보기 더보기 정답 코드 class Solution { public int solution(String name) { int answer = 0; // 총 조작 횟수 int length = name.length(); int minMove = length - 1; // 최소 좌우 이동 횟수(처음부터 끝까지 이동할 경우) for(int i = 0; i < length..

[백준/JAVA] 10989번 : 수 정렬하기 3

문제 링크 : https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 문제 내용 : 아래 더보기 더보기 - 문제 N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. - 입력 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. - 출력 첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다. 정답 코드 ) - 시간..

알고리즘/백준 2024.03.27

[백준/JAVA] 1931번 : 회의실 배정

문제 링크 : https://www.acmicpc.net/problem/1931 1931번: 회의실 배정 (1,4), (5,7), (8,11), (12,14) 를 이용할 수 있다. www.acmicpc.net 문제 내용 : 아래 더보기 더보기 - 문제 한 개의 회의실이 있는데 이를 사용하고자 하는 N개의 회의에 대하여 회의실 사용표를 만들려고 한다. 각 회의 I에 대해 시작시간과 끝나는 시간이 주어져 있고, 각 회의가 겹치지 않게 하면서 회의실을 사용할 수 있는 회의의 최대 개수를 찾아보자. 단, 회의는 한번 시작하면 중간에 중단될 수 없으며 한 회의가 끝나는 것과 동시에 다음 회의가 시작될 수 있다. 회의의 시작시간과 끝나는 시간이 같을 수도 있다. 이 경우에는 시작하자마자 끝나는 것으로 생각하면 된다..

알고리즘/백준 2024.03.27

[백준/JAVA] 5585번 : 거스름돈

문제 링크 : https://www.acmicpc.net/problem/5585 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net 문제 내용 : 아래 더보기 더보기 - 문제 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사고 카운터에서 1000엔 지폐를 한장 냈을 때, 받을 잔돈에 포함된 잔돈의 개수를 구하는 프로그램을 작성..

알고리즘/백준 2024.03.27