본문 바로가기

문제풀이/백준83

[JAVA] BOJ 백준 1149번 - RGB거리 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 2. 내가 푼 방법 문제 설명이 뭔가 싶은데,, 결국 위 아래에 있는 집이 동일한 색상을 가지지 않으면 된다. 먼저 각 집의 색상을 칠할 때의 비용을 house 배열에 넣어주고, 비용의 최솟값을 담은 dp 배열을 생성해주었다. 나는 두 가지 함수를 만들었다. - draw 함수 : N번째 집에서 최소 비용 찾기 - m.. 2023. 3. 27.
[JAVA] BOJ 백준 2579번 - 계단 오르기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2579 2579번: 계단 오르기 계단 오르기 게임은 계단 아래 시작점부터 계단 꼭대기에 위치한 도착점까지 가는 게임이다. 과 같이 각각의 계단에는 일정한 점수가 쓰여 있는데 계단을 밟으면 그 계단에 쓰여 있는 점 www.acmicpc.net 2. 내가 푼 방법 처음엔 재귀만 이용했는데 시간초과를 해결하지 못하여 정답을 본 문제이다. 먼저 점화식를 찾아야 했다. 처음 코드가 재귀로 작성됐기 때문에 빠르게 찾을 줄 알았는데 실패했다. 인덱스 값에 접근하기 편하게 배열 길이를 N+1로 설정한 것을 참고바라면서 아래 그림을 봐보자. N번째에 도착하기 위해 올 수 있는 방법은 두가지가 있다. -.. 2023. 3. 27.
[JAVA] BOJ 백준 2206번 - 벽 부수고 이동하기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로 www.acmicpc.net 2. 내가 푼 방법 다양한 난이도의 BFS 문제를 풀다 보면, 어떻게 풀어야 할지 감이 잡히는 문제이다. 일반 BFS 풀이 과정에서 경로를 지나친적이 있는지 확인하는 check 변수를 잘 설정해주면 되는 게 포인트이다. 이번 문제에서는 벽을 한번 부숴 지나쳤는지, 벽을 부시지 않고 지나쳤는지에 대한 것을 삼차원 .. 2023. 2. 14.
[JAVA] BOJ 백준 11003번 - 최솟값 찾기 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/11003 11003번: 최솟값 찾기 N개의 수 A1, A2, ..., AN과 L이 주어진다. Di = Ai-L+1 ~ Ai 중의 최솟값이라고 할 때, D에 저장된 수를 출력하는 프로그램을 작성하시오. 이때, i ≤ 0 인 Ai는 무시하고 D를 구해야 한다. www.acmicpc.net 2. 내가 푼 방법 모든 A (i-L+1) ~ A (i) 인 배열에서 매번 정렬(= 최솟값 찾기)을 하게 된다면 시간초과가 발생할 것이다. 하지만 만약 A (i-L+1) ~ A (i) 배열이 항상 오름차순으로 정렬된다면 바로 맨 앞 값만 가져오면 되는 문제이다. 포인트만 잡고 나면 코드 작성은 쉬워졌다. .. 2023. 2. 14.
[JAVA] BOJ 백준 1021번 - 회전하는 큐 목차 문제 내가 푼 방법 자바 코드 결과 및 회고 1. 문제 https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 2. 내가 푼 방법 문제 명칭 때문에 큐가 바로 떠오르지만, LinkedList를 사용하면 아주 쉽게 풀 수 있는 문제이다. - 첫 번째 원소를 뽑아낼 때 사용하는 pollFirst() 메서드 - 왼쪽으로 한 칸 이동할 때 사용하는 pollFirst() 메서드 + addLast() 메서드 - 오른쪽으로 한 칸 이동할 때 사용하는 po.. 2023. 2. 12.