목록Algorithm/Baekjoon (6)
notepad by Oxix

문제 풀이 직선 위에 점은 위치와 색깔을 나타낸다. (위치,색깔) 위치는 최대 10만까지 색깔은 300개까지 최대 가능하다. 점을 지나칠때 마다 모두 검사를 한다면 제한 시간 2초 (약 2억번)에는 불가능하다. 이유는 O(n) * n 이기 때문에 2억번을 넘는다. 그렇기 때문에 색상 별로 나누고 정렬한다. 가장 가까운 원소는 양 옆에 있기 때문에 하나를 고르면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.lang.reflect.Array; import java.util.ArrayList; import java.util.Collections; import j..

문제 풀이 해당 문제는 정렬 문제이다. 숫자 카드에 쓰이는 정수는 int형을 벗어나므로 long형을 쓰거나 BigInteger를 사용해야하며, 길이가 최대 10만인 배열을 순차적으로 비교할때 제한 시간 1초 약 1억번의 연산으로 충분해 보인다. 카드에 적힌 숫자가 가장 많은 것을 찾아야하고 동률인 경우 더 작은 수를 출력해야 하기 때문에 내림차순으로 정렬한 뒤 기본값으로 지정한 count보다 많은 경우 값을 변경해주면 된다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class 카드_11652 { static StringBui..

문제 풀이 해당 문제는 제목과 같이 정렬 문제이다. 배열 크기 N은 최대 50이며 50개의 배열을 일반 정렬로 구현해도 제한 시간안에 충분히 구현 가능하다. 자료형은 Int형 범위안에 들기 때문에 Int를 쓰도록 하겠다. 원본 배열을 정렬된 배열과 비교하여 index값을 정렬된 배열에 몇번째 위치하는지 나타내는 배열을 출력하는 문제 이다. 구조체를 사용하여 index, value을 갖게한 다음 value기준으로 정렬하여 값을 비교 이후, 결과를 도출했다.(value가 같으면 index를 이용하여 알아서 정렬해준다.) import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.u..

문제 유형 완전 탐색을 하여 하나씩 결과를 비교해야 하기 때문에 브루트 포스 알고리즘 유형이다. N의 최대는 20이기 때문에 2의 20제곱 만큼 경우의 수가 나온다 완전탐색의 경우 2초안에 가능한 범위이며 정수 S의 최대치는 정수형이기 때문에 변수는 int형을 쓰도록 하겠다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class 부분수열의합_1182 { static int N, S, ans; static int[] arr; static BufferedReader br = new BufferedReader(new..
해당 문제는 브루트 포스 문제로 모든 경우를 다 탐색한 다음 합산한 값을 비교하여 출력하기로 하였다. public class 퇴사_14501 { static int N; static Work[] arr; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringTokenizer st; N = Integer.parseInt(br.readLine()); arr = new Work[N + 1]; for (int i = 1; i

문제 형택이는 건축가이다. 지금 막 형택이는 형택이의 남자 친구 기훈이의 집을 막 완성시켰다. 형택이는 기훈이 방의 바닥 장식을 디자인했고, 이제 몇 개의 나무 판자가 필요한지 궁금해졌다. 나무 판자는 크기 1의 너비를 가졌고, 양수의 길이를 가지고 있다. 기훈이 방은 직사각형 모양이고, 방 안에는 벽과 평행한 모양의 정사각형으로 나누어져 있다. 이제 ‘-’와 ‘|’로 이루어진 바닥 장식 모양이 주어진다. 만약 두 개의 ‘-’가 인접해 있고, 같은 행에 있다면, 두 개는 같은 나무 판자이고, 두 개의 ‘|’가 인접해 있고, 같은 열에 있다면, 두 개는 같은 나무 판자이다. 기훈이의 방 바닥을 장식하는데 필요한 나무 판자의 개수를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 방 바닥의 세로 크기N과 가..