Silver I
-
이번 문제는 우선순위 큐를 이용하는 문제이다. Comparable과 Comparator라는 인터페이스가 있다. 이 두 개의 인터페이스는 두 값을 비교해 어떠한 기준으로 정렬을 시키는 인터페이스이다. 그래서 이 인터페이스를 이용하여 정렬을 한 후 큐에서 poll() 메소드를 사용하면 된다. 필자는 Comparator라는 인터페이스를 사용했는데 compare라는 메소드를 오버라이딩하여 사용하면 된다. 우리가 생각해야할 기준은 두 가지이다. 먼저 절댓값이 서로 다를 때. 절댓값이 서로 다르면 어느 하나의 절댓값이 더 크다는 소리다. 절댓값이 더 큰 수가 뒤로 배치되어야 한다. 절댓값이 같으면 원래의 수가 더 작은 것이 앞에와야한다. 이 두가지를 생각하고 로직을 짜면 된다. 아래 코드를 보자. import ja..
[백준] 스택, 큐 - 11286_절댓값 힙 Java[자바]이번 문제는 우선순위 큐를 이용하는 문제이다. Comparable과 Comparator라는 인터페이스가 있다. 이 두 개의 인터페이스는 두 값을 비교해 어떠한 기준으로 정렬을 시키는 인터페이스이다. 그래서 이 인터페이스를 이용하여 정렬을 한 후 큐에서 poll() 메소드를 사용하면 된다. 필자는 Comparator라는 인터페이스를 사용했는데 compare라는 메소드를 오버라이딩하여 사용하면 된다. 우리가 생각해야할 기준은 두 가지이다. 먼저 절댓값이 서로 다를 때. 절댓값이 서로 다르면 어느 하나의 절댓값이 더 크다는 소리다. 절댓값이 더 큰 수가 뒤로 배치되어야 한다. 절댓값이 같으면 원래의 수가 더 작은 것이 앞에와야한다. 이 두가지를 생각하고 로직을 짜면 된다. 아래 코드를 보자. import ja..
2024.02.07 -
바로 전 문제와 마찬가지로 구간합을 이용하면 풀 수 있는 문제이다. 다만, 구간 합을 구하는 방법이 전과는 달라졌다. 먼저 A[2,2] 까지의 합을 구하는 방법을 생각해보면 S[1,2] + S[2,1] - S[1,1] + A[2,2]로 나타낼 수 있다. 이것으로 보아 합 배열을 나타내는 표현식은 S[i,j] = S[i - 1, j] + S[i, j - 1] - S[i - 1, j - 1] + A[i, j] 이다. 위에 나온 예제를 활용하여 [2,2]부터 [3,4]까지의 합을 구해보면 S[3,4] - S[3,1] - S[1, 4] + S[1, 1]으로 표현이 가능하다. 이제 공식으로 변환을 하면 [x1, y1] 부터 [x2, y2] 까지의 합은 S[x2, y2] - S[x2, y1-1] - S[x1-1, ..
[백준] 구간 합 - 11660_구간 합 구하기 Java[자바]바로 전 문제와 마찬가지로 구간합을 이용하면 풀 수 있는 문제이다. 다만, 구간 합을 구하는 방법이 전과는 달라졌다. 먼저 A[2,2] 까지의 합을 구하는 방법을 생각해보면 S[1,2] + S[2,1] - S[1,1] + A[2,2]로 나타낼 수 있다. 이것으로 보아 합 배열을 나타내는 표현식은 S[i,j] = S[i - 1, j] + S[i, j - 1] - S[i - 1, j - 1] + A[i, j] 이다. 위에 나온 예제를 활용하여 [2,2]부터 [3,4]까지의 합을 구해보면 S[3,4] - S[3,1] - S[1, 4] + S[1, 1]으로 표현이 가능하다. 이제 공식으로 변환을 하면 [x1, y1] 부터 [x2, y2] 까지의 합은 S[x2, y2] - S[x2, y1-1] - S[x1-1, ..
2024.01.31