본문 바로가기

백준문제풀이46

[백준] 2156번 : 포도주 시식(JAVA) https://www.acmicpc.net/problem/2156 2156번: 포도주 시식 효주는 포도주 시식회에 갔다. 그 곳에 갔더니, 테이블 위에 다양한 포도주가 들어있는 포도주 잔이 일렬로 놓여 있었다. 효주는 포도주 시식을 하려고 하는데, 여기에는 다음과 같은 두 가지 규칙이 있다. 포도주 잔을 선택하면 그 잔에 들어있는 포도주는 모두 마셔야 하고, 마신 후에는 원래 위치에 다시 놓아야 한다. 연속으로 놓여 있는 3잔을 모두 마실 수는 없다. 효주는 될 수 있는 대로 많은 양의 포도주를 맛보기 위해서 어떤 포도주 잔을 선택해야 할지 고 www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이.. 2020. 1. 8.
[백준] 1463번 : 1로 만들기(JAVA) https://www.acmicpc.net/problem/1463 1463번: 1로 만들기 첫째 줄에 1보다 크거나 같고, 106보다 작거나 같은 정수 N이 주어진다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이다. 매우 오랜만에 알고리즘 문제를 풀어본다. 마지막으로 푼게 작년이니 말이다... 작년이라고 해봤자 약 20일 전이지만 그래도 열심히 문제를 풀지 않았다는 것에 반성하며 글을 작성한다. 먼저 1을 1로만드는 최솟값은 0이고, 2를 1로 만드는 값은 1, 3도 1, 이제 4부터 3가지 방법으로 나눠서 진행을 시켰다. 3가지 방법을 비교할 수 있는 배열을 만들고, 첫 번째 배열에는 .. 2020. 1. 2.
[백준] 9663번 : N-Queen(JAVA) https://www.acmicpc.net/problem/9663 9663번: N-Queen N-Queen 문제는 크기가 N × N인 체스판 위에 퀸 N개를 서로 공격할 수 없게 놓는 문제이다. N이 주어졌을 때, 퀸을 놓는 방법의 수를 구하는 프로그램을 작성하시오. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 13단계 백트래킹의 카테고리에 포함되어 있는 문제이다. 이 문제는 크기가 N * N인 체스판 위에 N개의 퀸을 서로 공격할 수 없게 놓는 문제이다. 체스판에서 퀸은 가로세로대각선을 모두 공격할 수 있는 최고의 말이다. visit_a과 visit_b는 바로 다음행의 각각 바로위의 대각선에 퀸을 놓지 않기 위해 선언한 배열이다. '자료구조와 .. 2019. 12. 9.
[백준] 15652번 : N과 M (4)(JAVA) https://www.acmicpc.net/problem/15652 15652번: N과 M (4) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 13단계 백트래킹의 카테고리에 포함되어 있는 문제이다. 이번 문제는 중복을 허용하면서 숫자의 순서가 비 내림차순인 순서여야 하는 문제이다. 이전의 문제들을 풀고나니 푸는데 어려움이 없던 문제이다. import java.util.Scanner; public class Question_15652 { static in.. 2019. 12. 6.
[백준] 1932번 : 정수 삼각형(JAVA) https://www.acmicpc.net/problem/1932 1932번: 정수 삼각형 문제 7 3 8 8 1 0 2 7 4 4 4 5 2 6 5 위 그림은 크기가 5인 정수 삼각형의 한 모습이다. 맨 위층 7부터 시작해서 아래에 있는 수 중 하나를 선택하여 아래층으로 내려올 때, 이제까지 선택된 수의 합이 최대가 되는 경로를 구하는 프로그램을 작성하라. 아래층에 있는 수는 현재 층에서 선택된 수의 대각선 왼쪽 또는 대각선 오른쪽에 있는 것 중에서만 선택할 수 있다. 삼각형의 크기는 1 이상 500 이하이다. 삼각형을 이루고 있는 각 수는 www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이다.. 2019. 12. 6.
[백준] 9375번 : 패션왕 신해빈(JAVA) https://www.acmicpc.net/problem/9375 9375번: 패션왕 신해빈 문제 해빈이는 패션에 매우 민감해서 한번 입었던 옷들의 조합을 절대 다시 입지 않는다. 예를 들어 오늘 해빈이가 안경, 코트, 상의, 신발을 입었다면, 다음날은 바지를 추가로 입거나 안경대신 렌즈를 착용하거나 해야한다. 해빈이가 가진 의상들이 주어졌을때 과연 해빈이는 알몸이 아닌 상태로 며칠동안 밖에 돌아다닐 수 있을까? 입력 첫째 줄에 테스트 케이스가 주어진다. 테스트 케이스는 최대 100이다. 각 테스트 케이스의 첫째 줄에는 해빈이가 가진 의상의 수 www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 16단계 수학3의 카테고리에 포함되어 있는 문제이다. 경우.. 2019. 12. 5.
[백준] 1149번 : RGB거리(JAVA) https://www.acmicpc.net/problem/1149 1149번: RGB거리 RGB거리에 사는 사람들은 집을 빨강, 초록, 파랑중에 하나로 칠하려고 한다. 또한, 그들은 모든 이웃은 같은 색으로 칠할 수 없다는 규칙도 정했다. 집 i의 이웃은 집 i-1과 집 i+1이고, 첫 집과 마지막 집은 이웃이 아니다. 각 집을 빨강으로 칠할 때 드는 비용, 초록으로 칠할 때 드는 비용, 파랑으로 드는 비용이 주어질 때, 모든 집을 칠하는 비용의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 14단계 동적 계획법 1의 카테고리에 포함되어 있는 문제이다. 혼자 해결해보려고 했다가 힘들어서 검색을 통해 이해하고 .. 2019. 12. 4.
[백준] 15651번 N과 M (3)(JAVA) https://www.acmicpc.net/problem/15651 15651번: N과 M (3) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 13단계 백트래킹의 카테고리에 포함되어 있는 문제이다. 이전문제들에서는 숫자의 중복이 허용되지 않았다면 이번문제는 숫자의 중복이 허용되는 문제이다. 자바의 경우 System.out.print를 사용하면 시간초과가 난다. 그래서 처음 풀었을 때는 시간초과가 났었다. BufferedWriter를 사용했다. 숫자의 중.. 2019. 12. 4.
[백준] 15650번 : N과 M (2)(JAVA) https://www.acmicpc.net/problem/15650 15650번: N과 M (2) 한 줄에 하나씩 문제의 조건을 만족하는 수열을 출력한다. 중복되는 수열을 여러 번 출력하면 안되며, 각 수열은 공백으로 구분해서 출력해야 한다. 수열은 사전 순으로 증가하는 순서로 출력해야 한다. www.acmicpc.net 위의 문제는 BaekJoon Online Judge의 단계별로 풀어보기 중 13단계 백트래킹의 카테고리에 포함되어 있는 문제이다. 이전의 15649번 문제인 N과 M (1)의 문제와 비슷한 문제이다. (1)은 모든 경우를 출력하였다면, (2)는 오름차순의 경우에만 출력하는 문제이다. 나는 기존의 코드에서 다음 재귀를 호출하기 전 출력하려는 배열에 오름차순이 저장되어 있다면 다음을 호출하.. 2019. 12. 4.