문제 풀이
-
[Baekjoon Online Judge] 1912번: 연속합문제 풀이/Baekjoon Online Judge 2021. 2. 6. 16:10
1912번: 연속합 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. www.acmicpc.net 요구사항 - n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 수를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 수는 한 개 이상 선택해야 한다. 입력 - 첫째 줄에 정수 n(1 ≤ n ≤ 100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력 - 첫째 줄에 답을 출력한다. n개의 정수로 이루어진 임의의 수열 중 연속 된..
-
[Baekjoon Online Judge] 11053번: 가장 긴 증가하는 부분 수열문제 풀이/Baekjoon Online Judge 2021. 2. 6. 14:57
11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 요구사항 - 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구한다. 입력 - 첫째 줄에 수열 A의 크기 N (1 ≤ N ≤ 1,000)이 주어진다. - 둘째 줄에는 수열 A를 이루고 있는 Ai가 주어진다. (1 ≤ Ai ≤ 1,000) 출력 - 첫째 줄에 수열 A의 가장 긴 증가하는 부분 수열의 길이를 출력한다. 수열의 각 항목을 비교하며, 해당 자리 까지 가장 긴 증가하는 부..
-
[Baekjoon Online Judge] 1212번: 8진수 2진수문제 풀이/Baekjoon Online Judge 2021. 2. 5. 20:37
1212번: 8진수 2진수 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. www.acmicpc.net 요구사항 - 8진수가 주어졌을 때, 2진수로 변환한다. 입력 - 첫째 줄에 8진수가 주어진다. 주어지는 수의 길이는 333,334을 넘지 않는다. 출력 - 첫째 줄에 주어진 수를 2진수로 변환하여 출력한다. 수가 0인 경우를 제외하고는 반드시 1로 시작해야 한다. 빠른 변환을 위하여 map에 key 값을 8진수로, value 값을 8진수를 2진수로 나타낸 값으로 세팅한다. 입력받은 8진수를 for loop를 돌며 값을 채워준다. 조건 중에 반드시 1로 시작해야 하기 때문에 완성된 이진수 문자열을 체크하여 0을 삭제해준다. import java.io.BufferedRea..
-
[Baekjoon Online Judge] 11656번: 접미사 배열문제 풀이/Baekjoon Online Judge 2021. 2. 5. 20:03
11656번: 접미사 배열 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. www.acmicpc.net 요구사항 - 접미사 배열은 문자열 S의 모든 접미사를 사전순으로 정렬해 놓은 배열이다. - 문자열 S가 주어졌을 때, 모든 접미사를 사전순으로 정렬한 다음 출력한다. 입력 - 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000보다 작거나 같다. 출력 - 첫째 줄부터 S의 접미사를 사전순으로 한 줄에 하나씩 출력한다. 입력받은 문자열을 substring으로 시작 index를 하나씩 이동하며 List에 저장한다. 간단하게 정렬을 한 후 출력하여 해결하였다. import java.io.BufferedReade..
-
[Baekjoon Online Judge] 10988번: 팰린드롬인지 확인하기문제 풀이/Baekjoon Online Judge 2021. 2. 5. 20:00
10988번: 팰린드롬인지 확인하기 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. www.acmicpc.net 요구사항 - 알파벳 소문자로만 이루어진 단어가 주어진다. - 이 단어가 팰린드롬인지 아닌지 확인한다. - 팰린드롬이란 앞으로 읽을 때와 거꾸로 읽을 때 똑같은 단어를 말한다. 입력 - 첫째 줄에 단어가 주어진다. 단어의 길이는 1보다 크거나 같고, 100보다 작거나 같으며, 알파벳 소문자로만 이루어져 있다. 출력 - 첫째 줄에 팰린드롬이면 1, 아니면 0을 출력한다. 입력받은 word의 길이를 기준으로 2로 나누어 그 전까지의 숫자를 비교하며 로직을 작성하였다. word의 길이가 1인 경우 무조건 팬린드롬이 맞기 때문..
-
[Baekjoon Online Judge] 2193번: 이친수문제 풀이/Baekjoon Online Judge 2021. 2. 2. 21:57
2193번: 이친수 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수(pinary number)라 한다. 이친수는 다음의 성질을 만족한다. 이친수는 0으로 시작하지 않 www.acmicpc.net 요구사항 - 0과 1로만 이루어진 수를 이진수라 한다. 이러한 이진수 중 특별한 성질을 갖는 것들이 있는데, 이들을 이친수라 한다. - 이친수는 0으로 시작하지 않는다. - 이친수는 1이 두 번 연속 나타나지 않는다. 즉, 11을 부분 문자열로 갖지 않는다. 입력 - 첫째 줄에 N이 주어진다. N(1 ≤ N ≤ 90) 출력 - 첫째 줄에 N자리 이친수의 개수를 출력한다. 우선 간단한 규칙을 찾기 위해서 N의 범위에 맞춰 만족하는 이친수의 개수를 세보았..
-
[Baekjoon Online Judge] 2156번: 포도주 시식문제 풀이/Baekjoon Online Judge 2021. 2. 2. 21:38
2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규 www.acmicpc.net 요구사항 - 테이블 위에 다양한 포도주가 들어 있는 포도주 잔이 일렬로 놓여 있었다. 포도주 시식을 위해서는 두 가지 규칙이 있다. 1. 포도주 잔을 선택하면 그 잔을 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 2. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. - 각 포도주 잔에 들어 있는 포도주의 양이 주어졌을 때, 가장 많은 포도주를 마실 수 있도록 작성한다. 입력 - 첫째 줄에 포도주 잔의 개수 n이 주어진다. (..
-
[Baekjoon Online Judge] 2748번: 피보나치 수 2문제 풀이/Baekjoon Online Judge 2021. 2. 1. 21:23
2748번: 피보나치 수 2 피보나치 수는 0과 1로 시작한다. 0번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이 된다. 이를 식으로 써보면 Fn = Fn-1 + Fn-2 (n ≥ 2)가 www.acmicpc.net 요구사항 - 피보나치 수는 0과 1로 시작한다. 0 번째 피보나치 수는 0이고, 1번째 피보나치 수는 1이다. 그 다음 2번째 부터는 바로 앞 두 피보나치 수의 합이다. 입력 - 첫째 줄에 n이 주어진다. n은 90보다 작거나 같은 자연수이다. 출력 - 첫째 줄에 n번째 피보나치 수를 출력한다. import java.io.BufferedReader; import java.io.BufferedWriter; import java...