본문 바로가기

Algorithm/Baekjoon65

[백준 알고리즘][자바] 1181번 : 단어 정렬 https://www.acmicpc.net/problem/1181 1181번: 단어 정렬 첫째 줄에 단어의 개수 N이 주어진다. (1 ≤ N ≤ 20,000) 둘째 줄부터 N개의 줄에 걸쳐 알파벳 소문자로 이루어진 단어가 한 줄에 하나씩 주어진다. 주어지는 문자열의 길이는 50을 넘지 않는다. www.acmicpc.net 이번 문제는 단어를 정렬하는 문제입니다. 첫 번째 기준은 길이가 짧은 것 두 번째 기준은 길이가 같으면 사전 순으로 정렬하는 것입니다. 좌표 정렬하기에서는 퀵정렬을 수정하여 알고리즘을 직접 만들어서 해결했는데 이번 문제는 쉽지 않네요. 일단 Array.sort()를 사용하여 문제를 해결하고 직접 알고리즘을 만드는 거는 고민을 해봐야겠습니다. 풀이 import java.io.Buffere.. 2022. 6. 28.
[백준 알고리즘][자바] 11651번 : 좌표 정렬하기2 https://www.acmicpc.net/problem/11651 11651번: 좌표 정렬하기 2 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 이번 문제는 11650번 : 좌표 정렬하기에서는 x좌표를 첫 번째 기준 y좌표를 두 번째 기준으로 했다면, 반대로 y좌표가 첫 번째 기준 x좌표가 두번째 기준입니다. 2022.06.22 - [Algorithm/Baekjoon] - [백준 알고리즘][자바] 11650번 : 좌표 정렬하기 [백준 알고리즘][자바] 11650번 : 좌표 정렬하기 .. 2022. 6. 22.
[백준 알고리즘][자바] 11650번 : 좌표 정렬하기 https://www.acmicpc.net/problem/11650 11650번: 좌표 정렬하기 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. www.acmicpc.net 이번 문제는 좌표를 사용하여 첫 번째는 x좌표 기준으로 오름차순으로 정렬하고, 같은 숫자가 존재할 때 y좌표 기준으로 오름차순을 하는 문제입니다. 여러 가지 정렬 알고리즘에다가 x좌표가 같은 숫자일 때 y좌표 기준으로 정렬하는 부분을 추가해주면 해결할 수 있습니다. 다만 제한시간이 1초이기 때문에 시간 복잡도가 중요합니다. 우선, 단순 삽입 정.. 2022. 6. 22.
[백준 알고리즘][자바] 1427번 : 소트인사이드 https://www.acmicpc.net/problem/1427 1427번: 소트인사이드 첫째 줄에 정렬하려고 하는 수 N이 주어진다. N은 1,000,000,000보다 작거나 같은 자연수이다. www.acmicpc.net 이번 문제는 개행되어서 숫자가 주어지는 것이 아닌, 한 번에 숫자가 주어지고 각 자릿수를 뽑아내서 정렬을 해야 하는 문제입니다. 다양한 정렬을 사용하여 문제를 해결할 수 있는데 이번 포스팅에서는 이때까지 많이 사용했던 카운팅 정렬과 Arrays.sort()를 사용해서 해결해보겠습니다. 2022.05.07 - [Algorithm/Theory] - [Java] Counting Sort(카운팅 정렬) [Java] Counting Sort(카운팅 정렬) Counting Sort는 일반적인 .. 2022. 6. 15.
[백준 알고리즘][자바] 2108번 : 통계학(카운팅 정렬) https://www.acmicpc.net/problem/2108 2108번: 통계학 첫째 줄에 수의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 단, N은 홀수이다. 그 다음 N개의 줄에는 정수들이 주어진다. 입력되는 정수의 절댓값은 4,000을 넘지 않는다. www.acmicpc.net 이번 문제를 해결할 때는 카운팅 정렬을 사용합니다. 2022.05.07 - [Algorithm/Theory] - [Java] Counting Sort(카운팅 정렬) [Java] Counting Sort(카운팅 정렬) Counting Sort는 일반적인 정렬 알고리즘과 달리 데이터를 서로 비교하지 않고, 데이터의 값을 카운팅 하여 정렬하는 알고리즘입니다. 시간 복잡도는 O(n)인데, 빠른 정렬 알고리즘으로 알려져.. 2022. 6. 14.
[백준 알고리즘][자바] 10989번 : 수 정렬하기 3 https://www.acmicpc.net/problem/10989 10989번: 수 정렬하기 3 첫째 줄에 수의 개수 N(1 ≤ N ≤ 10,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 10,000보다 작거나 같은 자연수이다. www.acmicpc.net 기본적인 수 정렬하기 시리즈 마지막 문제입니다. 이번 문제에서는 아래의 3가지 방법을 사용하여 풀어보도록 하겠습니다. 직접 구현한 Counting Sort를 사용 Arrays.sort()를 사용 Collections.sort()를 사용 2022.05.07 - [Algorithm/Theory] - [Java] Counting Sort(카운팅 정렬) [Java] Counting Sort(카운팅 정렬) Counting S.. 2022. 5. 7.
[백준 알고리즘][자바] 2751번 : 수 정렬하기 2 https://www.acmicpc.net/problem/2751 2751번: 수 정렬하기 2 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 이번 문제는 자바에 내장되어 있는 정렬 함수를 사용하여 푸는 문제이다. 자바에 내장되어 있는 정렬 함수는 Arrays.sort() 와 Collections.sort()가 있다.(자바 8기준) 2022.04.30 - [Programming/Java] - [Java] 자바 내장 정렬 함수 - Arrays.sort() [Java] 자바 내장 정렬 함수 - Arrays.sort() 데이터들을 .. 2022. 5. 3.
[백준 알고리즘][자바] 2750번 : 수 정렬하기 https://www.acmicpc.net/problem/2750 2750번: 수 정렬하기 첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수 주어진다. 이 수는 절댓값이 1,000보다 작거나 같은 정수이다. 수는 중복되지 않는다. www.acmicpc.net 2022.01.22 - [Algorithm/Theory] - [자바] 단순 선택 정렬과 단순 삽입 정렬 [자바] 단순 선택 정렬과 단순 삽입 정렬 단순 선택 정렬 단순 선택 정렬이란 배열중 가장 작은 요소를 선택해 알맞은 위치로 옮겨서 정렬하는 단순한 알고리즘입니다. 아래의 배열에서 가장 작은 요소인 1을 선택해 첫 번째 위치인 6과 hyunipad.tistory.com import java.io.Buff.. 2022. 3. 8.
[백준 알고리즘][자바] 1436번 : 영화감독 숌 https://www.acmicpc.net/problem/1436 1436번: 영화감독 숌 666은 종말을 나타내는 숫자라고 한다. 따라서, 많은 블록버스터 영화에서는 666이 들어간 제목을 많이 사용한다. 영화감독 숌은 세상의 종말 이라는 시리즈 영화의 감독이다. 조지 루카스는 스타 www.acmicpc.net import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) thro.. 2022. 3. 6.
[백준 알고리즘][자바] 1018번 : 체스판 다시 칠하기 https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net 브루트 포스의 문제입니다. 브루트 포스는 모든 경우의 수를 검사한다는 부분은 간단하지만, 어떤 경우의 수를 검사하는지가 어려운 거 같습니다. 문제 속에 힌트가 있었습니다. 8x8 크기의 체스판으로 잘라낸 후에 몇 개의 정사각형을 다시 칠해야겠다고 생각했다. 8x8 크기의 체스판으로 잘라낼 때, 잘라낼 8x8의 첫 시작 정사각형을 기준으로 살펴보면 규칙이 눈에 보입니다. 예제 입력을 보면서 .. 2022. 3. 5.
반응형