문제 - 점 N개가 주어짐(x, y) - 해당 좌표들을 y 좌표가 증가하는 순으로 정렬 - y 좌표가 같으면 x 좌표가 증가하는 순서로 정렬 해결방법 Point class를 만들어서 좌표를 Point 배열로 저장하였다. 해당 좌표들을 정렬하기 위해 Comparator를 만들었고, 주어진 조건대로 x 좌표가 증가하는 순으로 정렬하였다. x 좌표가 같다면 y 좌표가 증가하는 순서로 정렬할 수 있도록 조건을 주었다. 이전에 풀었던 11650번 좌표 정렬하기 문제와 똑같이 해결하였다. [백준] 11650번 좌표 정렬하기(JAVA) 문제 - 점 N개가 주어짐(x, y) - 해당 좌표들을 x 좌표가 증가하는 순으로 정렬 - x 좌표가 같으면 y 좌표가 증가하는 순서로 정렬 해결방법 Point class를 만들어서 ..
문제 - N개의 스위치와 N개의 전구 - i(1
문제 - 수빈이는 점 N(0
문제 - 점 N개가 주어짐(x, y) - 해당 좌표들을 x 좌표가 증가하는 순으로 정렬 - x 좌표가 같으면 y 좌표가 증가하는 순서로 정렬 해결방법 Point class를 만들어서 좌표를 Point 배열로 저장하였다. 해당 좌표들을 정렬하기 위해 Comparator를 만들었고, 주어진 조건대로 x 좌표가 증가하는 순으로 정렬하였다. x 좌표가 같다면 y 좌표가 증가하는 순서로 정렬할 수 있도록 조건을 주었다. 객체 정렬과 관련된 내용은 아래 글을 참고하면 좋을 것 같다. [JAVA] Comparable / Comparator 객체들을 정렬하기 위해서는 정렬 기준이 필요하다. 단순한 숫자, 문자와 같은 기본형(primitive) 데이터는 Arrays.sort() 메서드를 이용하여 알아서 정렬할 수 있다...
문제 - 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수 구하기 - n은 양수, 11보다 작음 - 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지(1+1+1+1, 1+1+2, 1+2+1, 2+1+1, 2+2, 1+3, 3+1) 해결방법 1, 2, 3으로 조합해서 경우의 수를 구하는 것이기 때문에 1, 2, 3을 만들 수 있는 방법을 먼저 생각해보았다. 1은 1 밖에 없으므로 경우의 수 1이다. (dp[1] = 1) 2는 1+1, 2 이므로 경우의 수 2이다. (dp[2] = 2) 3은 1+1+1, 1+2, 2+1, 3 이므로 경우의 수는 4이다. (dp[3] = 4) 4는 1+3, 2+2, 3+1로 나타낼 수 있다. 1. 1+3일 때, 3을 만드는 경우의 수는 4이다..
문제 - 최대한 많은 곡을 제대로 연주하려고 할 때, 필요한 기타의 최소 개수 - 첫째 줄에 기타의 개수 N(10보다 작거나 같은 자연수)과 곡의 개수 M(50보다 작거나 같은 자연수)이 주어짐 - 둘째 줄부터 N개의 줄에 기타 이름과 연주할 수 있는 곡의 정보가 주어짐 - 연주할 수 있는 곡은 Y/N로 주어짐 - 필요한 기타의 개수를 출력. 연주할 수 있는 곡이 없으면 -1 해결방법 조합으로 2개의 기타부터 여러 개의 기타까지 선택해서 해당 기타들이 연주할 수 있는 곡의 여부를 판단할 수 있도록 하였다. 기타를 선택하는 과정은 com 함수에 구현하였으며, 해당 기타들이 연주할 수 있는 곡의 여부를 판단하는 과정은 check 함수에 구현하였다. 코드 import java.util.*; import jav..
문제 - 정수를 저장하는 덱(Deque)을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램 작성 - push_front X : 정수 X를 덱의 앞에 넣기 - push_back X : 정수 X를 덱의 뒤에 넣기 - pop_front : 덱의 가장 앞에 있는 정수를 빼고, 그 수 출력. 만약 덱에 들어있는 정수가 없는 경우 -1 출력 - pop_back : 덱의 가장 뒤에 있는 정수를 빼고, 그 수 출력. 만약 덱에 들어있는 정수가 없는 경우 -1 출력 - size : 덱에 들어있는 정수의 개수 출력 - empty : 덱이 비어있으면 1, 아니면 0 출력 - front : 덱의 가장 앞에 있는 정수 출력. 만약 덱에 들어있는 정수가 없는 경우 -1 출력 - back : 덱의 가장 뒤에 있는 정수 출..
문제 - 정수를 저장하는 큐을 구현한 다음, 입력으로 주어지는 명령을 처리하는 프로그램 작성 - push X : 정수 X를 큐에 넣기 - pop : 스택에서 가장 앞에 있는 정수를 빼고, 그 수 출력. 만약 큐에 들어있는 정수가 없는 경우 -1 출력 - size : 큐에 들어있는 정수의 개수 출력 - empty : 큐가 비어있으면 1, 아니면 0 출력 - front : 큐의 가장 앞에 있는 정수 출력. 만약 큐에 들어있는 정수가 없는 경우 -1 출력 - back : 큐의 가장 뒤에 있는 정수 출력. 만약 큐에 들어있는 정수가 없는 경우 -1 출력 해결방법 이 문제를 해결할 때에는 자바 내의 ArrayDeque 클래스를 이용하여 문제를 해결하였다. push X (add(x)), pop (poll()), ..