본문 바로가기

분류 전체보기94

[백준 Gold 1] 2357 최솟값과 최댓값 - Java 문제링크 : https://www.acmicpc.net/problem/2357 접근 과정 : https://rays-space.tistory.com/84 [백준 Gold 1] 10868 최솟값 - Java 문제링크 : https://www.acmicpc.net/problem/10868 10868번: 최솟값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만.. rays-space.tistory.com 위 문제와 같은 같은 문제이다. 위 문제에서 사용했던 세그먼트 트리를 활용하기 위해 해당 문제를 풀게 되었다. 최솟값과 최댓값을 의미하는 세그먼트 트리를 각각 만들어서 문제를 해결했다. 소스 코드 및 결과 .. 2022. 1. 10.
[백준 Gold 1] 10868 최솟값 - Java 문제링크 : https://www.acmicpc.net/problem/10868 10868번: 최솟값 N(1 ≤ N ≤ 100,000)개의 정수들이 있을 때, a번째 정수부터 b번째 정수까지 중에서 제일 작은 정수를 찾는 것은 어려운 일이 아니다. 하지만 이와 같은 a, b의 쌍이 M(1 ≤ M ≤ 100,000)개 주어졌을 때는 www.acmicpc.net 접근 과정 : 특정 범위가 주어졌을 때, 해당 범위 내의 최솟값을 찾는 문제다. 숫자와 질의 입력이 최대 100,000까지 주어지기 때문에, 일반적인 탐색으로는 힘들것이라고 생각했다. 세그먼트 트리를 사용해 보았다. 내가 이해한 세그먼트 트리는, 특정 범위 내에서의 값(최대값 혹은 최솟값 등)을 노드에 표시하는 것이다. 노드 1은 1~N까지의 값 중.. 2022. 1. 10.
[백준 Silver 1] 11048 이동하기 - Java 문제링크 : https://www.acmicpc.net/problem/11048 11048번: 이동하기 준규는 N×M 크기의 미로에 갇혀있다. 미로는 1×1크기의 방으로 나누어져 있고, 각 방에는 사탕이 놓여져 있다. 미로의 가장 왼쪽 윗 방은 (1, 1)이고, 가장 오른쪽 아랫 방은 (N, M)이다. 준규는 www.acmicpc.net 접근 과정 : 해당 문제는 DP를 이용해서 풀수 있다. DP[r][c] = maze[r][c] + Math.max(dp[r-1][c], Math.max(dp[r][c-1], dp[r-1][c-1])) 이다. Top-down 과 Bottom-up으로 풀어보았다. 소스 코드 및 결과 : package BOJ; /* 이동하기 Top-down */ import java.io.*.. 2022. 1. 7.
[백준 Silver 3] 10825 국영수 - Java 문제링크 : https://www.acmicpc.net/problem/10825 10825번: 국영수 첫째 줄에 도현이네 반의 학생의 수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 한 줄에 하나씩 각 학생의 이름, 국어, 영어, 수학 점수가 공백으로 구분해 주어진다. 점수는 1보다 크거나 같고, 1 www.acmicpc.net 접근 과정 : 정렬을 위한 비교 메소드를 사용할 수 있는지 묻는 문제인것 같다. 국어, 영어, 수학, 이름 순으로 비교를 해야하고 점수는 숫자이지만 이름은 문자이다. 한번에 비교하고자, score 클래스를 만들어서 사용했다. 조건에 맞게 비교 우위를 설정하고 우선순위 큐에 집어넣어서 출력했다. 소스 코드 및 결과 : package BOJ; /* 국영수 */ imp.. 2022. 1. 7.