본문 바로가기

전체 글

(263)
[백준] 10830 : 행렬 제곱 JAVA 풀이 import java.io.*; import java.util.*; public class Main { static int N; static int[][] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine()," "); // N과 B를 입력받음 N = Integer.parseInt(st.nextToken()); long B = Long.parseLong(st.nextToken()); // 행렬의 값을 저장할 배열 생..
[백준] 2740 : 행렬 곱셈 JAVA 풀이 분할정복 문제를 조금 풀어봤는데 아직도 어떻게 풀어야 할지 감이 안 와서 검색을 해보니 단순히 행렬곱셈을 하는 코드도 정답처리된다기에 우선 그렇게 풀어보았다. import java.io.*; import java.util.*; public class Main{ static int[][] A; static int[][] B; static int[][] C; public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st = new StringTokenizer(br.readLine(), " "); int ..
[백준] 2261 : 가장 가까운 두 점 JAVA 풀이 https://st-lab.tistory.com/256 [백준] 2261번 : 가장 가까운 두 점 - JAVA [자바] https://www.acmicpc.net/problem/2261 2261번: 가장 가까운 두 점 첫째 줄에 자연수 n(2 ≤ n ≤ 100,000)이 주어진다. 다음 n개의 줄에는 차례로 각 점의 x, y좌표가 주어진다. 각각의 좌표는 절댓값이 10,000을.. st-lab.tistory.com 이 포스트를 참고해서 풀었다 이전에 풀었던 히스토그램에서 가장 큰 직사각형의 넓이를 구하는 문제와 전체적인 흐름은 비슷하다. import java.io.*; import java.util.*; public class Main { // Point 객체 배열 선언 private static Poi..
[백준] 6549 : 히스토그램에서 가장 큰 직사각형 JAVA 풀이 https://st-lab.tistory.com/255 [백준] 6549번 : 히스토그램에서 가장 큰 직사각형 - JAVA [자바] https://www.acmicpc.net/problem/6549 6549번: 히스토그램에서 가장 큰 직사각형 입력은 테스트 케이스 여러 개로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있고, 직사각형의 수 n이 가장 처음 st-lab.tistory.com 이 포스트를 참고해서 풀었다. import java.io.*; import java.util.*; public class Main { static long[] histogram; public static void main(String[] args)throws IOException { BufferedReader ..
[백준] 2630 : 색종이 만들기 JAVA 풀이 이전에 풀었던 쿼드트리 문제와 푸는 방식은 동일하다. 한 종이가 파란색 또는 흰색 둘 중 하나의 색으로만 이루어져있다면 그 색으로만 이루어진 종이의 수를 증가시킨다. 종이가 하나의 색으로 이루어져있지 않다면 그 종이를 같은 크기로 4분할을 하고 위 과정을 반복하면 된다. 1. n을 입력받는다. 2. 종이에 각 칸이 어떤 색인지 저장할 2차원 배열 arr[n][n]를 생성한다 3. arr에 입력받은 값을 저장한다. 4. 흰색 종이의 개수와 파란색 종이의 개수를 저장할 배열 cnt[2]를 생성한다. 5. 종이가 하나의 색으로만으로 이루어져있는지 확인하는 함수 colorCheck를 구현한다. 종이의 첫번째 칸을 color라는 변수에 저장하고, 그 종이의 모든 칸이 color와 같은지 체크한다. color와 색..
[백준] 1517 : 버블소트 JAVA 풀이 처음 문제를 읽었을 때는 쉬워보이는데 정답 비율이 왜 이렇게 낮지?라는 생각이 들었다. 그리고 버블소트로 풀어보니 역시나 시간초과가 나왔다. 버블소트는 시간복잡도가 O(N^2)인데, 최대 500,000개의 수가 주어지니 그럴 만했다. swap횟수는 병합정렬을 하는 과정에 뒤쪽에 있던 인덱스가 앞으로 이동한 만큼 더해주면 된다. import java.io.*; import java.util.*; public class Main{ static long cnt = 0; static long[] sorted; public static void main(String[] args)throws IOException{ BufferedReader br = new BufferedReader(new InputStreamRe..
[백준] 2448 : 별 찍기 - 11 JAVA 풀이 https://rightbellboy.tistory.com/39 [백준/BOJ] 2448번 별찍기 - 11 (java) 백준 온라인 저지(BOJ) 2448번 별찍기 - 11 https://www.acmicpc.net/problem/2448 * 사용언어 : java, 자바 1. 문제 N( = 3 * 2 ^ k(1, 2, ... , 10) )을 입력받고 N번째 줄까지 예제와 같이 별을 출력 2. 풀이.. rightbellboy.tistory.com 이 포스트를 참고해서 풀었다. 설명이 아주 잘 되어 있어서 읽어보면 큰 도움이 될 것이다. import java.io.*; import java.util.*; public class Main{ public static void main(String[] args)t..
[백준] 1992 : 쿼드트리 JAVA 풀이 직전에 푼 문제는 보드를 9분할해가며 그 한 조각이 같은 값으로 구성돼있는지 검사하는 거였다. 이번 문제는 보드를 4분할한다는 것만 빼면 풀이방식은 완전 동일하다. 언제 괄호를 출력해야 하는지가 좀 헷갈렸지만, 간단하게 한 조각이 같은 수로만 이루어지지 않았을 때는 괄호를 열고 그렇지 않을 때는 괄호를 닫으면 된다. import java.io.*; import java.util.*; public class Main{ static int board[][]; static int[] cnt = new int[3]; static StringBuilder sb = new StringBuilder(); public static void main(String[] args)throws IOException{ Buffe..