반응형

그리디 알고리즘 22

[백준 / BOJ] C++ 1071 소트

1071번: 소트 문제 https://www.acmicpc.net/problem/1071 1071번: 소트 N개의 정수가 주어지면, 이것을 연속된 두 수가 연속된 값이 아니게 정렬(A[i] + 1 ≠ A[i+1])하는 프로그램을 작성하시오. 가능한 것이 여러 가지라면 사전순으로 가장 앞서는 것을 출력한다. www.acmicpc.net 풀이 N개의 수를 입력받아 A[i]+1 ≠ A[i+1]를 만족하게 정렬하여 사전순으로 가장 앞서는 것을 출력하는 문제다. 그리디 알고리즘으로 풀면 된다. 두 시간 정도 들여서 AC 받았다. 가장 중요한 두가지가 있는데 첫 번째는 사전순으로 가장 앞서는 것이기 때문에 수를 정렬해 주고 시작해야 한다. 둘째는 남아있는 수의 (최댓값 - 최솟값)이 1이면 큰 수를 먼저 모두 출력..

Problem Solving/BOJ 2023.02.13

[백준 / BOJ] C++ 1041 주사위

1041번: 주사위 문제 https://www.acmicpc.net/problem/1041 1041번: 주사위 첫째 줄에 N이 주어진다. 둘째 줄에 주사위에 쓰여 있는 수가 주어진다. 위의 그림에서 A, B, C, D, E, F에 쓰여 있는 수가 차례대로 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, 쓰여 있는 수 www.acmicpc.net 풀이 주사위 각 면의 숫자를 입력받고 주사위들로 N×N×N 크기의 정육면체를 만든다. 이 정육면체는 탁자 위에 있어 5면만 보이는데 이때 보이는 수들의 합의 최솟값을 구하는 문제다. '그리디하게 풀어보자' 했는데, 최대한 한 면에 작은 수를 넣고자 했고 두 면이 노출되는 경우에도 최솟값을, 세 면이 노출되는 경우에도 가능한 최솟값을 넣어줬다. 그림으..

Problem Solving/BOJ 2023.02.08
반응형