본문 바로가기

분류 전체보기

(644)
[백준/자바] 10828 - 스택 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; public class Main { private static int[] stack; private static int size = 0; private static StringBuilder sb = new StringBuilder(); public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine())..
56일차 - 알고리즘(DFS/BFS) https://school.programmers.co.kr/learn/courses/30/lessons/43165 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 깊이 우선 탐색(DFS) - 그래프 완전 탐색 기법 중 하나 - 그래프의 시작 노드에서 출발하여 한 쪽 분기의 최대 깊이까지 탐색을 마친 후 다른 쪽 분기로 이동하여 다시 탐색을 수행하는 알고리즘 - 실제 구현 시 재귀 함수, 스택을 이용한다. 너비 우선 탐색(BFS) - 그래프 완전 탐색 기법 중 하나 - 시작 노드에서 출발해 시작 노드를 기준으로 가까운 노드를 먼저 방문하면서 탐색하는 알고리즘..
[프로그래머스/자바] 타겟 넘버 class Solution { public int solution(int[] numbers, int target) { return new NumberOfCases(numbers, target).calc(); } } class NumberOfCases { private final int[] numbers; private final int target; public NumberOfCases(int[] numbers, int target) { this.numbers = numbers; this.target = target; } int calc() { return calc(0, 0); } private int calc(int depth, int sum) { if (depth == numbers.length) r..
55일차 - 알고리즘(이진 탐색) https://school.programmers.co.kr/learn/courses/30/lessons/72412 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 이진 탐색 - 정렬된 배열에서 원하는 값을 빠르게 찾는 검색 알고리즘 - 배열을 반으로 나누어 가며 원하는 값을 찾기 때문에, 시간복잡도가 O(log n)으로 매우 빠르다. public int binarySearch(int[] arr, int target) { int left = 0; int right = arr.length - 1; while (left
[프로그래머스/자바] 순위 검색 import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; class Solution { public int[] solution(String[] info, String[] query) { int[] answer = new int[query.length]; Map map = makeIndex(info); for(int i=0; i< query.length; i++){ int index = query[i].lastIndexOf(" "); String key = query[i].substring(0, index); int score = Integer.parseInt(query[i].substr..
54일차 - stream 정렬 stream을 이용한 정렬 * 기본 정렬(오름차순) List list = List.of(5, 2, 3, 4, 1); list = list.stream().sorted().collect(Collectors.toList()); // 1, 2, 3, 4, 5 * 내림차순 정렬 List list = List.of(5, 2, 3, 4, 1); list = list.stream().sorted(Comparator.reverseOrder()).collect(Collectors.toList()); // 5, 4, 3, 2, 1 stream을 이용한 객체 정렬 * 기본 정렬(오름차순) List list = List.of( new Person("yuri", 30), // String name, int age new Per..
[백준/자바] 2751 - 수 정렬하기 2 import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out)); int n = Integer.parseInt(br.readLine()); List list = new ArrayList();..
[백준/자바] 1920 - 수 찾기 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.HashSet; import java.util.Set; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); Set set = new HashSet(); int n = Integer.parseInt(br.readLine()); String[] arr1 = br.readLine().split("..