개발/백준알고리즘
2563번_색종이_java
1.문제 2.접근방식 처음에는 각 사각형의 영역의 넓이를 더하고 사각형마다 겹치는 영역을 빼는 방식으로 생각을 하였다. 문제의 예시의 경우 각 사각형의 넓이는 100이므로 100 + 100 + 100 - (13-5) * (12-7) = 300 - 8 * 5 = 260 이 된다. 그런데 해당 방법의 경우 사각형들이 겹치는 영역을 구하기 위해서는 사각형이 100개일 경우 1번 사각형이 2~100번 사각형과 겹치는 부분을 확인해야 하고 2번 사각형이 3~100번 사각형과 겹치는 부분을 확인해야 하는 것처럼 계산을 너무 많이 해야 할것 같았다. 그래서 다른 방법을 생각했는데 흰색 도화지 영역을 넓이 1의 1칸짜리의 2차원 배열로 만들어서 입력된 사각형들로 색칠이 되는 영역을 배열에서 체크를 한 후 체크된 영역을..
5597번_과제 안 내신 분..?_java
1. 문제 2. 접근방식 처음에는 LinkedList를 이용(ArrayList 보다 데이터 추가, 삭제가 빨라서) 해서 1~30까지의 값을 저장한 후 입력값들을 제거한 후 정렬을 해서 출력을 하게 개발을 하였는데 이유는 모르겠지만 틀렸다고 통과를 하지 못해서 배열을 이용하는 방법으로 수정하였다. 배열에 1~30까지 boolean false 값(default값)으로 세팅한 후 입력값들을 true로 변경후 false로 되있는 배열의 값들을 출력하게 수정해서 제출하니 통과하였다. 3. 코드 1) 배열 사용 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.Outp..
1912번_연속합_java
● 문제 ● 접근방식 동적계획법을 이용 동적계획법 : 특정 범위까지의 값을 구하기 위해 그것과 다른 범위의 값을 이용해서 효율적으로 구하는 방법 아래의 조건을 모두 만족할 경우에는 i번째 위치까지의 연속합은 i-1번째 위치까지의 연속합과 i번째 값의 합 (i-1번째 까지의 합이 양수 && i-1번째 까지의 연속합과 i번째 값의 합이 양수일 경우) 이외의 경우는 i번째 까지의 연속합은 i번째 값으로 추가로 dp[i] 0) { dp[i] = dp[i-1] + numArr[i]; } else { dp[i] = numArr[i]; } if(max < dp[i]) { max = dp[i]; } } writer.append(String.valueOf(max)); writer.flush(); writer.close(..
25305번_커트라인_java
● 문제 ● 접근방식 배열을 내림차순 정렬 후 k번째 index의 요소를 구함 ● 코드 package acmicpc; import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.InputStreamReader; import java.io.OutputStreamWriter; import java.util.Arrays; import java.util.Comparator; public class acmicpc25305 { public static void main(String[] agrs) { try { BufferedReader reader = new BufferedReader(new InputStreamReader(System...