실버

    백준 - 연속합 1912 java

    백준 - 연속합 1912 java

    https://www.acmicpc.net/problem/1912 1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net [문제 접근] input으로 주어진 값이 너무 커서 완전 탐색으로 접근하게되면 시간 복잡도가 어마어마 해질거 같았습니다. 그래서 dp 메모제이션으로 문제 접근을 해봤습니다. 우선 저는 연속된 수를 골랐을 때, 연속된 수를 고르지 않았을 때 두 가지 경우로 나누어서 생각했는데요 dp[i] 배열에는 i번째 수에서 최대로 만들 수 있는 값을 저장하면 점화식은 아래와 같아집니다. dp[i] = Math.max(dp..

    [백준] - 도영이가 만든 맛있는 음식 2691

    [백준] - 도영이가 만든 맛있는 음식 2691

    https://www.acmicpc.net/problem/2961 2961번: 도영이가 만든 맛있는 음식 첫째 줄에 재료의 개수 N(1 ≤ N ≤ 10)이 주어진다. 다음 N개 줄에는 그 재료의 신맛과 쓴맛이 공백으로 구분되어 주어진다. 모든 재료를 사용해서 요리를 만들었을 때, 그 요리의 신맛과 쓴맛은 www.acmicpc.net N의 범위가 1 ~ 10 이여서 조합 완전 탐색으로 해결했습니다. [Java] import java.io.*; import java.util.*; public class Main { static long ans = Integer.MAX_VALUE; public static void main(String args[]) throws IOException { BufferedRead..

    [백준] - 피보나치함수 (1003)

    [백준] - 피보나치함수 (1003)

    https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 규칙을 찾으면 간단히 해결할 수 있는 문제이다. 우선 규칙은 아래와 같다. fibo(0)은 0을 1번, 1을 0번 출력한다. fibo(1)은 0을 0번, 1을 1번 출력한다. 그렇다면 fibo(2)는 0과 1을 몇번 출력할까? fibo(2) = fibo(0) + fibo(1)이며 이것을 아래와 같이 풀어 쓸 수 있다. fibo(2)의 0 출력 횟수 = fibo(0)이 0을 출력한 횟수 + fibo(1)이 0을 출력한 횟수 fibo(2)의 1 출력 횟수 = fibo(0)이 1을 출력한 횟수 + ..

    [백준] - 암기왕 2776

    [백준] - 암기왕 2776

    https://www.acmicpc.net/problem/2776 2776번: 암기왕 연종이는 엄청난 기억력을 가지고 있다. 그래서 하루 동안 본 정수들을 모두 기억 할 수 있다. 하지만 이를 믿을 수 없는 동규는 그의 기억력을 시험해 보기로 한다. 동규는 연종을 따라 다니며, www.acmicpc.net 입력 값이 최대 1,000,000이기 때문에 시간복잡도가 logN인 이분탐색으로 문제를 해결했다 [Java] import java.io.*; import java.util.ArrayList; import java.util.Collections; import java.util.StringTokenizer; public class Main { public static void main(String[] ar..

    [백준] - 키 큰 사람 11292

    [백준] - 키 큰 사람 11292

    https://www.acmicpc.net/problem/11292 11292번: 키 큰 사람 민우는 학창시절 승부욕이 강해서 달리기를 할 때에도 누가 가장 빠른지를 중요하게 생각하고, 시험을 볼 때에도 누가 가장 성적이 높은지를 중요하게 생각한다. 이번에 반에서 키를 측정하였 www.acmicpc.net [문제 풀이] Sudent 클래스를 만든 후 클래스 정렬을 위해 Compareable 인터페이스를 구현해준다. Colletions.sort 를 이용해 정렬을 해준 후 list를 순차적으로 탐색하면서 현재 요소와 다음 요소의 키가 다르다면 반복문을 종료시킨다. 실수 정렬을 위해 Double.compar(o1, o2)를 이용 [Java] import java.io.*; import java.util.*; ..

    [백준] - 자리배정 10157

    [백준] - 자리배정 10157

    https://www.acmicpc.net/problem/10157 10157번: 자리배정 첫 줄에는 공연장의 격자 크기를 나타내는 정수 C와 R이 하나의 공백을 사이에 두고 차례대로 주어진다. 두 값의 범위는 5 ≤ C, R ≤ 1,000이다. 그 다음 줄에는 어떤 관객의 대기번호 K가 주어진다. www.acmicpc.net 시계방향으로 배열을 초기화 시켜준다. 배열의 범위를 벗어나거나 이미 자리가 배정된 경우 방향을 전환해준다. 자리 배정이 끝나면 대기 순서가 K인 자리(x, y)를 찾아 출력한다. [Java] import java.io.*; import java.util.*; public class Main { // 위, 오른쪽, 아래쪽, 왼쪽 순으로 방향을 전환 (시계방향) static int d..