전체 글
-
[Baekjoon Online Judge] 1003번: 피보나치 함수문제 풀이/Baekjoon Online Judge 2021. 1. 29. 01:11
1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 요구사항 - fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출)을 호출한다. fibonacci(2)는 fibonacci(1) (두 번째 호출)과 fibonacci(0)을 호출한다. 두 번째 호출한 fibonacci(1)은 1을 출력하고 1을 리턴한다. fibonacci(0)은 0을 출력하고, 0을 리턴한다. fibonacci(2)는 fibonacci(1)과 fibonacci(0)의 결과를 얻고, 1을 리턴한다. 첫 번째 호출한 fibonacci(1)은 1을 ..
-
[Baekjoon Online Judge] 9095번: 1, 2, 3 더하기문제 풀이/Baekjoon Online Judge 2021. 1. 28. 23:54
9095번: 1, 2, 3 더하기 각 테스트 케이스마다, n을 1, 2, 3의 합으로 나타내는 방법의 수를 출력한다. www.acmicpc.net 요구사항 - 정수 4를 1, 2, 3의 합으로 나타내는 방법은 총 7가지가 있다. 합을 나타낼 때 수를 1개 이상 사용해야 한다. - 1 + 1 + 1 + 1 - 1 + 1 + 2 - 1 + 2 + 1 - 2 + 1 + 1 - 2 + 2 - 1 + 3 - 3 + 1 정수 n이 주어졌을 때, n을 1, 2, 3의 합으로 나타내는 방법의 수를 구하는 프로그램을 작성한다. 입력 - 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 정수 n이 주어진다. n은 양수이며 11보다 작다. 출력 - 각 테스트 케이스마다, n을 1,..
-
[Baekjoon Online Judge] 1463번: 1로 만들기문제 풀이/Baekjoon Online Judge 2021. 1. 27. 21:58
1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 요구사항 - 정수 X에 사용할 수 있는 연산은 다음과 같이 세 가지이다. 1. X가 3으로 나누어 떨어지면, 3으로 나눈다. 2. X가 2로 나누어 떨어지면, 2로 나눈다. 3. 1을 뺀다. - 정수 N이 주어졌을 때, 위와 같은 연산 세 개를 적절히 사용해서 1을 만들려고 한다. 연산을 사용하는 횟수의 쵯솟값을 출력한다. 입력 - 첫째 줄에 1보다 크거나 같고, 10^6보다 작거나 같은 정수 N이 주어진다. 출력 - 첫째 줄에 연산을 하는 횟수의 최솟값을 출력한다. import java.io.BufferedReader; import java.io.BufferedWriter;..
-
[다이나믹 프로그래밍] Dynamic programming문제 풀이/Baekjoon Online Judge 2021. 1. 27. 21:17
1. 다이나믹 프로그래밍이란? 큰 문제의 해답에 작은 문제의 해답이 포함되어 있고, 이를 재귀 호출 알고리즘으로 구현하면 지나친 중복이 발생할 수 있기 때문에 재귀적 중복을 해결하는 방법이다. 간단하게 말하면 작은 문제들의 값을 저장하여 재사용하는 것이다. 다이나믹 프로그래밍이라는 표기를 보면 큰 연관이 없어보이는데, 이광근 교수의 저서 "컴퓨터 과학이 여는 세계"에서는 다이나믹 프로그래밍을 기억하며 풀기로 번역하였다고 한다. 2. 다이나믹 프로그래밍의 예 다이나믹 프로그래밍의 예로는 피보나치 수열이 있다. 피보나치 수는 다음과 같이 정의할 수 있다. f(n) = f(n - 1) + f(n - 2) f(1) = f(2) = 1 n의 피보나치 수에는 n - 1과 n - 2의 피보나치 수를 포함하는 것을 알..
-
11주차 과제: EnumProgramming/Java live study 2021. 1. 27. 16:58
11주차 과제: Enum · Issue #11 · whiteship/live-study 목표 자바의 열거형에 대해 학습하세요. 학습할 것 (필수) enum 정의하는 방법 enum이 제공하는 메소드 (values()와 valueOf()) java.lang.Enum EnumSet 마감일시 2021년 1월 30일 토요일 오후 1시까지. github.com 목표 자바의 열거형에 대해 학습하세요. 학습할 것 - enum 정의하는 방법 - enum이 제공하는 메소드 (values()와 valueOf()) - java.lang.Enum - EnumSet 1. Enum 참고 : velog.io/@pop8682/Enum-27k067ns4a www.geeksforgeeks.org/enum-in-java/ wisdom-an..
-
[Baekjoon Online Judge] 10798번: 세로읽기문제 풀이/Baekjoon Online Judge 2021. 1. 24. 21:52
10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 요구사항 A A B C D D a f z z 0 9 1 2 1 a 8 E W g 6 P 5 h 3 k x - 한 줄의 단어는 글자들을 빈칸 없이 연속으로 나열해서 최대 15개의 글자들로 이루어진다. - 만들어진 다섯 개의 글자 개수는 서로 다를 수 있다. - 다섯 개의 단어를 세로로 읽는다. - 위 입력을 예시로 들면 Aa0aPAf985Bz1EhCz2W3D1gkD6x 이다. 입력 - 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들..
-
[Baekjoon Online Judge] 10610번: 30문제 풀이/Baekjoon Online Judge 2021. 1. 24. 21:41
10610번: 30 어느 날, 미르코는 우연히 길거리에서 양수 N을 보았다. 미르코는 30이란 수를 존경하기 때문에, 그는 길거리에서 찾은 수에 포함된 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만들고 싶어한 www.acmicpc.net 요구사항 - 양수 N이 주어진다. - 양수 N에 포함되어 있는 숫자들을 섞어 30의 배수가 되는 가장 큰 수를 만든다. 입력 N을 입력받는다. N는 최대 10의 5제곱의 숫자로 구성되어 있으며, 0으로 시작하지 않는다. 출력 미르코가 만들고 싶어하는 수가 존재한다면 그 수를 출력하라. 그 수가 존재하지 않는다면, -1을 출력하라. 30의 배수가 되기 위해서는 각 자리수의 합이 3으로 나누어 떨어져야 하고, 적어도 하나의 0이 포함되어야 한다. 30의 곱을 확인해보면..
-
[Baekjoon Online Judge] 4949번: 균형잡힌 세상문제 풀이/Baekjoon Online Judge 2021. 1. 23. 14:54
4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 입력의 종료조건으로 맨 마 www.acmicpc.net 요구사항 - 어떤 문자열이 주어졌을 때, 괄호들이 균형이 잘 맞춰져 있는지 판단하는 프로그램 - 문자열에 포함되는 괄호는 소괄호("()") 와 대괄호("[]")로 2종류이고, 문자열이 균형을 이루는 조건은 아래와 같다. - 모든 왼쪽 소괄호("(")는 오른쪽 소괄호(")")와만 짝을 이뤄야 한다. - 모든 왼쪽 대괄호("[")는 오른쪽 대괄호("]")와만 짝을 이뤄야 한다. - 모든 오른쪽 괄호들은 자신과 짝을 이룰 수 있는 왼쪽 괄호가 존재한다...