BOJ 4

[BOJ] 순회강연 2109.java

문제 백준의 과제 13904 문제와 같은 문제이다. 점수와 날짜만 서로 바꿔서 입력된다. 해당 문제는 하루에 한 개의 강연만 할 수 있을 때, 가장 최대로 얻을 수 있는 p(강연료)를 구하는 문제이다. 해설 및 코드 package BAEKJOON; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; import java.util.TreeSet; public class 순회강연_2109 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); int[][] arr = new int[N][2];..

IT/알고리즘 2021.06.21

[BOJ] 시리얼번호 1431.java

문제 - 문제에 나온 순서대로 정렬해서 출력하면 된다. - 정렬 및 구현 문제 해설 및 코드 package BAEKJOON; import java.util.*; public class 시리얼번호_1431 { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int N = sc.nextInt(); PriorityQueue pq = new PriorityQueue(new Comparator() { @Override public int compare(String o1, String o2) { // TODO Auto-generated method stub if (o1.length() == o2.length()) { int ..

IT/알고리즘 2021.05.18

[BOJ] 배열돌리기1_16926.java

문제 - 구현의 기본적인 문제 - 반시계방향으로 배열의 각 원소를 하나씩 옮긴다. - R번 회전한다. 해설 및 코드 배열 회전 문제를 구현할 때, 그냥 보이는 대로 푸는 경우가 많다. -> 복잡성이 증가한다. 내가 구현한 배열 회전은 2개의 temp를 임시저장해서 사용했다. 완전히 같은 문제는 아니지만, 배열 돌리는 문제를 부딪치면서 푼 방법이다. int stx = queries[i][0]; int sty = queries[i][1]; int min = Integer.MAX_VALUE; int endx = queries[i][2]; int endy = queries[i][3]; int back = map[stx][endy]; for (int j = endy; j > sty; j--) { min = Mat..

IT/알고리즘 2021.04.09

[BOJ] 소년점프 16469.java

문제 www.acmicpc.net/problem/16469 굉장히 괜찮았던 문제이다. 어려운 문제는 아니었는데, 접근하는 방법을 조금 다르게 생각해봐야하는 좋은 문제였다. - 첫 줄에 주어진 R, C로 만들어진 map - q1, q2, q3 3명이 동시에 한 지점에 도착할 때의 최단 시간을 찾으면 된다. 해설 및 코드 코드 자체는 어렵지 않게 풀어서, 큰 주석을 붙이지는 않았다. BFS로 문제를 풀었는데, Deepening을 사용해서 한 번에 이동이 가능한 size만큼 체크를 해줬다. 어디든 갈 수 있기 때문에, 방문 할 수 있으면 무조건 True로 만들어줬다. 이후, 전체 map을 탐색해서 세 check 배열이 모두 True인 구간이 있으면 개수를 센 후에 종료해줬다. 최단만 찾으면 되니까! packa..

IT/알고리즘 2021.03.20