본문 바로가기

백준 알고리즘 공부6

[백준] 11650번 : 좌표 정렬하기 - Java /Comparator Interface 문제 2차원 평면 위의 점 N개가 주어진다. 좌표를 x좌표가 증가하는 순으로, x좌표가 같으면 y좌표가 증가하는 순서로 정렬한 다음 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 점의 개수 N (1 ≤ N ≤ 100,000)이 주어진다. 둘째 줄부터 N개의 줄에는 i번점의 위치 xi와 yi가 주어진다. (-100,000 ≤ xi, yi ≤ 100,000) 좌표는 항상 정수이고, 위치가 같은 두 점은 없다. 출력 첫째 줄부터 N개의 줄에 점을 정렬한 결과를 출력한다. • Comparator 우선 Comparator와 Comparable은 아래의 블로그를 참고하였다, blog.naver.com/occidere/220918234464 간단히 요약하자면 Comparable은 일반적인 정렬의 기준을 정의할 떄,.. 2021. 2. 11.
[백준] 2869: 달팽이는 올라가고 싶다 - Java 문제 땅 위에 달팽이가 있다. 이 달팽이는 높이가 V미터인 나무 막대를 올라갈 것이다. 달팽이는 낮에 A미터 올라갈 수 있다. 하지만, 밤에 잠을 자는 동안 B미터 미끄러진다. 또, 정상에 올라간 후에는 미끄러지지 않는다. 달팽이가 나무 막대를 모두 올라가려면, 며칠이 걸리는지 구하는 프로그램을 작성하시오. 입력 첫째 줄에 세 정수 A, B, V가 공백으로 구분되어서 주어진다. (1 ≤ B < A ≤ V ≤ 1,000,000,000) 출력 첫째 줄에 달팽이가 나무 막대를 모두 올라가는데 며칠이 걸리는지 출력한다. • 이 문제는 시간제한이 0.15초로 짧기 때문에 일반적으로 코드를 짜면 시간 초과가 발생한다. 하지만 수학적으로 접근하여 코드를 간단히 하면 풀이가 가능하다. 만약 높이가 5이고 낮에는 2 올.. 2021. 1. 8.
[백준] 2577: 숫자의 개수 - Java 문제 세 개의 자연수 A, B, C가 주어질 때 A×B×C를 계산한 결과에 0부터 9까지 각각의 숫자가 몇 번씩 쓰였는지를 구하는 프로그램을 작성하시오. 예를 들어 A = 150, B = 266, C = 427 이라면 A × B × C = 150 × 266 × 427 = 17037300 이 되고, 계산한 결과 17037300 에는 0이 3번, 1이 1번, 3이 2번, 7이 2번 쓰였다. 입력 첫째 줄에 A, 둘째 줄에 B, 셋째 줄에 C가 주어진다. A, B, C는 모두 100보다 같거나 크고, 1,000보다 작은 자연수이다. 출력 첫째 줄에는 A×B×C의 결과에 0 이 몇 번 쓰였는지 출력한다. 마찬가지로 둘째 줄부터 열 번째 줄까지 A×B×C의 결과에 1부터 9까지의 숫자가 각각 몇 번 쓰였는지 차례.. 2020. 12. 29.
[백준] 2439: 별 찍기 2 - Java 백준 2439번: 별 찍기 - 2 문제 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오. 입력 첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다. 출력 첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다. • 입력된 값이 5라 가정하면 1행에 공백은 4개, 2행에 공백이 3개 이런식으로 각 행의 공백은 N(입력받은 값) - i(행)가 된다. 또한 별은 각 행의 갯수 만큼 별이 출력되니 i 만큼 별을 출력하여 코드를 작성한다. • 풀이 import java.util.Scanner; public class Main{ public static void main(String[] args){ Scanner sc = new.. 2020. 12. 27.