본문 바로가기

Algorithm118

[탐색 알고리즘] 이진 탐색 알고리즘 [Update] - 2024.01.06: 이진 탐색 알고리즘 개념 최초 작성 이진 탐색 알고리즘이란? 이진 탐색 알고리즘은 빠른 탐색을 위한 알고리즘으로써, 오름차순으로 정렬된 리스트에서 원하는 값을 찾는 데 사용됩니다. 이 알고리즘은 다음과 같은 단계로 동작합니다. 리스트의 중간 값 추출: 먼저, 정렬된 리스트의 중간 값을 선택합니다. 이 값은 탐색 범위를 반으로 나누는 역할을 합니다. 중간 값과 목푯 값을 비교: 중간 값과 목푯 값을 비교합니다. 다음과 같은 순서로 동작합니다. ◎ 중간 값이 목표 값과 일치하다면, 원하는 값이 찾아진 것이기 때문에 탐색을 종료합니다. ◎ 중간 값이 목표 값보다 크다면, 리스트의 왼쪽 반에 대해 이진 탐색을 재귀적으로 수행합니다. ◎ 중간 값이 목표 값보다 작다면, 리.. 2024. 1. 6.
[백준 알고리즘 / JAVA] 1181번 단어 정렬 문제 정보 문제 링크: https://www.acmicpc.net/problem/1181 문제 번호: 1181번 문제 이름: 단어 정렬 문제 난이도: 실버5 반복 학습 날짜 2024.01.06 완료 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 코드 import java.io.*; import java.util.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader reader .. 2024. 1. 6.
[백준 알고리즘 / JAVA] 2798번 블랙잭 문제 정보 문제 링크: https://www.acmicpc.net/problem/2798 문제 번호: 2798번 문제 이름: 블랙잭 문제 난이도: 브론즈2 반복 학습 날짜 2024.01.06 완료 2798번: 블랙잭 첫째 줄에 카드의 개수 N(3 ≤ N ≤ 100)과 M(10 ≤ M ≤ 300,000)이 주어진다. 둘째 줄에는 카드에 쓰여 있는 수가 주어지며, 이 값은 100,000을 넘지 않는 양의 정수이다. 합이 M을 넘지 않는 카드 3장 www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; pu.. 2024. 1. 6.
[백준 알고리즘 / JAVA] 1546번 평균 문제 정보 문제 링크: https://www.acmicpc.net/problem/1546 문제 번호: 1546번 문제 이름: 평균 문제 난이도: 브론즈1 반복 학습 날짜 2024.01.03 완료 1546번: 평균 첫째 줄에 시험 본 과목의 개수 N이 주어진다. 이 값은 1000보다 작거나 같다. 둘째 줄에 세준이의 현재 성적이 주어진다. 이 값은 100보다 작거나 같은 음이 아닌 정수이고, 적어도 하나의 값은 0보 www.acmicpc.net 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new Buf.. 2024. 1. 4.
[백준 알고리즘 / JAVA] 9012번 괄호 문제 정보 문제 링크: https://www.acmicpc.net/problem/9012 문제 번호: 9012번 문제 이름: 괄호 문제 난이도: 실버4 반복 학습 날짜 2024.01.03 완료 9012번: 괄호 괄호 문자열(Parenthesis String, PS)은 두 개의 괄호 기호인 ‘(’ 와 ‘)’ 만으로 구성되어 있는 문자열이다. 그 중에서 괄호의 모양이 바르게 구성된 문자열을 올바른 괄호 문자열(Valid PS, VPS)이라고 www.acmicpc.net 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader.. 2024. 1. 4.
[백준 알고리즘 / JAVA] 1978번 소수 찾기 문제 정보 문제 링크: https://www.acmicpc.net/problem/1978 문제 번호: 1978번 문제 이름: 소수 찾기 문제 난이도: 브론즈2 반복 학습 날짜 2024.01.03 완료 1978번: 소수 찾기 첫 줄에 수의 개수 N이 주어진다. N은 100이하이다. 다음으로 N개의 수가 주어지는데 수는 1,000 이하의 자연수이다. www.acmicpc.net 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(Syste.. 2024. 1. 4.
[백준 알고리즘 / JAVA] 2675번 문자열 반복 문제 정보 문제 링크: https://www.acmicpc.net/problem/2675 문제 번호: 2675번 문제 이름: 문자열 반복 문제 난이도: 브론즈2 반복 학습 날짜 2024.01.02 완료 2675번: 문자열 반복 문자열 S를 입력받은 후에, 각 문자를 R번 반복해 새 문자열 P를 만든 후 출력하는 프로그램을 작성하시오. 즉, 첫 번째 문자를 R번 반복하고, 두 번째 문자를 R번 반복하는 식으로 P를 만들면 된다 www.acmicpc.net 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { BufferedReader br = n.. 2024. 1. 2.
[백준 알고리즘 / JAVA] 10818번 최소, 최대 문제 정보 문제 링크: https://www.acmicpc.net/problem/10818 문제 번호: 10818번 문제 이름: 최소, 최대 문제 난이도: 브론즈3 반복 학습 날짜 2024.01.02 완료 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다. www.acmicpc.net 코드 import java.util.*; import java.io.*; public class Main { public static void main(String[] args) throws IOException { Buffe.. 2024. 1. 2.
[백준 알고리즘 / JAVA] 1158번 요세푸스 문제 문제 정보 문제 링크: https://www.acmicpc.net/problem/1158 문제 번호: 1158번 문제 이름: 요세푸스 문제 문제 난이도: 실버 4 1158번: 요세푸스 문제 첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000) www.acmicpc.net 코드 import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class 백준_1158_요세푸스문제 { public static void main(String[] args) thr.. 2023. 7. 10.