분류 전체보기
-
백준 / 11726 / 2*n 타일링Algorithm 2020. 3. 22. 16:08
문제 입력 첫째 줄에 n이 주어진다. (1 ≤ n ≤ 1,000) 출력 첫째 줄에 2×n 크기의 직사각형을 채우는 방법의 수를 10,007로 나눈 나머지를 출력한다. 입출력 예 해결 동적 프로그래밍을 이용해 해결 할 수 있다. 2*0 -> 1, 2*1 -> 1, 2*2 -> 2, 2*3 -> 3 ... d[n] = d[n-2] + d[n-1] 코드 느낀점 비슷한 문제를 유튜브에서 봐서 그런지 로직은 빨리 구현할 수 있었다. 그러나 2*0도 경우의 수가 1이 존재한다는 사실을 간과했으며 10007로 나누는 것을 마지막 요소에만 해서 오류가 발생했다. 출처
-
백준 / 14501 / 퇴사Algorithm 2020. 3. 22. 15:45
문제 입력 첫째 줄에 N (1 ≤ N ≤ 15)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 5, 1 ≤ Pi ≤ 1,000) 출력 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. 입출력 예 해결 재귀 함수를 이용해 최대 값을 구할 수 있다. 코드 느낀점 bf 문제라는 힌트가 있는데도 불구하고 문제를 너무 어렵게 생각해서 풀지 못했다. 문제를 침착하게 읽고 직관적으로 바라보는 방법을 터득해야한다.. 출처 https://ballpython.tistory.com/15 [백준 14501 : 퇴사] Java 백준 14501번 퇴사 문제입니다. schedule 메소드에서 1)day번째 날에 상담을 하는 경우와 2..
-
백준 / 2667 / 단지번호붙이기Algorithm 2020. 3. 21. 19:03
문제 입력 첫 번째 줄에는 지도의 크기 N(정사각형이므로 가로와 세로의 크기는 같으며 5≤N≤25)이 입력되고, 그 다음 N줄에는 각각 N개의 자료(0혹은 1)가 입력된다. 출력 첫 번째 줄에는 총 단지수를 출력하시오. 그리고 각 단지내 집의 수를 오름차순으로 정렬하여 한 줄에 하나씩 출력하시오. 입출력 예 해결 dfs로 탐색하면서 숫자를 세서 해결할 수 있다. 코드 느낀점 그래프 문제는 전체적으로 비슷한 느낌을 많이 준다. 그래서 이번 문제를 올리면서 딱히 주석 달만한게 없어서 안달았다. 앞으로 그래프 문제가 나와도 겁먹지 않을것같다. 출처
-
백준 / 11654 / 아스키 코드Algorithm 2020. 3. 20. 15:15
문제 알파벳 소문자, 대문자, 숫자 0-9중 하나가 주어졌을 때, 주어진 글자의 아스키 코드값을 출력하는 프로그램을 작성하시오. 입력 알파벳 소문자, 대문자, 숫자 0-9 중 하나가 첫째 줄에 주어진다. 출력 입력으로 주어진 글자의 아스키 코드 값을 출력한다. 입출력 예 해결 Char를 Int 로 Casting 하면 해결되는 아주 간단한 문제이다. 코드 느낀점 이 문제 덕분에 다른 문제에서 아스키 코드를 요구할 때 간단하게 풀 수 있을 것 같다. 출처
-
백준 / 11047 / 동전 0Algorithm 2020. 3. 20. 15:10
문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) 출력 첫째 줄에 K원을 만드는데 필요한 동전 개수의 최솟값을 출력한다. 입출력 예 해결 정렬을 이용한 그리디 알고리즘으로 해결할 수 있다. 코드 느낀점 동전 교환과 같은 문제들은 거의 그리디 알고리즘인 것을 알 수 있다. 출처
-
백준 / 2178 / 미로 탐색Algorithm 2020. 3. 20. 14:53
문제 입력 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. 출력 첫째 줄에 지나야 하는 최소의 칸 수를 출력한다. 항상 도착위치로 이동할 수 있는 경우만 입력으로 주어진다. 입출력 예 해결 bfs를 이용해 최적의 경로를 파악할 수 있다. 코드 느낀점 bfs를 이용해 탐색하는 기능은 구현했으나 최소로 지날 수 있는 값은 구할 수 없었다. 다른 블로그를 참고해보니 이전 경로의 값에 1을 더해가는 방식으로 해결했다. 그래프에 대한 이해도가 높았다면 풀 수 있는 문제였다.. 출처 https://ggmouse.tistory.com/315 [JAVA] 백준 알고리즘 2178 : 미로 탐색 (BFS) 빠..
-
백준 / 1003 / 피보나치 함수Algorithm 2020. 3. 18. 20:38
문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. 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을 출력하고, 1을 리턴한다. fibonacci(3)은 fibonacci(2)와 fibonacci(1..
-
백준 / 2309 / 일곱 난쟁이Algorithm 2020. 3. 18. 20:01
문제 왕비를 피해 일곱 난쟁이들과 함께 평화롭게 생활하고 있던 백설공주에게 위기가 찾아왔다. 일과를 마치고 돌아온 난쟁이가 일곱 명이 아닌 아홉 명이었던 것이다. 아홉 명의 난쟁이는 모두 자신이 "백설 공주와 일곱 난쟁이"의 주인공이라고 주장했다. 뛰어난 수학적 직관력을 가지고 있던 백설공주는, 다행스럽게도 일곱 난쟁이의 키의 합이 100이 됨을 기억해 냈다. 아홉 난쟁이의 키가 주어졌을 때, 백설공주를 도와 일곱 난쟁이를 찾는 프로그램을 작성하시오. 입력 아홉 개의 줄에 걸쳐 난쟁이들의 키가 주어진다. 주어지는 키는 100을 넘지 않는 자연수이며, 아홉 난쟁이의 키는 모두 다르며, 가능한 정답이 여러 가지인 경우에는 아무거나 출력한다. 출력 일곱 난쟁이의 키를 오름차순으로 출력한다. 일곱 난쟁이를 찾을..