Problem Solving1220 [백준] 1439 뒤집기 - Greedy / Java • 문제 링크 1439번: 뒤집기 다솜이는 0과 1로만 이루어진 문자열 S를 가지고 있다. 다솜이는 이 문자열 S에 있는 모든 숫자를 전부 같게 만들려고 한다. 다솜이가 할 수 있는 행동은 S에서 연속된 하나 이상의 숫자를 잡고 모 www.acmicpc.net • 풀이 과정 예제 입력 4를 예시로 들자면, 1 1 0 0 1 1 0 0 1 1 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 0 0 0 0 0 1 1 1 0 0 1 1 1 1 1 1 1 1 1 1 0 0 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 위와 같이 부분적으로 뒤집어 점진적으로 뒤집는 .. 2022. 11. 16. [백준] 11501 주식 - Greedy / Java • 문제 링크 11501번: 주식 입력의 첫 줄에는 테스트케이스 수를 나타내는 자연수 T가 주어진다. 각 테스트케이스 별로 첫 줄에는 날의 수를 나타내는 자연수 N(2 ≤ N ≤ 1,000,000)이 주어지고, 둘째 줄에는 날 별 주가를 나타 www.acmicpc.net • 풀이 과정 각 날짜를 기준으로 현재 주가보다 추후에 주가가 더 상승하는 날이 존재하는 지 확인한다. 이를 위해 반복문을 역으로 돌려 마지막 날부터 확인한다. 현재 주가가 최고 주가를 저장할 max 보다 크다면 해당 날짜의 주가로 max 를 갱신하고, 현재 주가가 max 보다 작다면 해당 날짜를 기준으로 이후에 주가가 더 오르는 날이 존재하게 된다. 따라서 이 때 주식을 하나 구매하고 마지막 날부터 확인하여 구해진 max 일 때 판매하.. 2022. 11. 15. [백준] 10162 전자레인지 - Greedy / Java • 문제 링크 10162번: 전자레인지 3개의 시간조절용 버튼 A B C가 달린 전자레인지가 있다. 각 버튼마다 일정한 시간이 지정되어 있어 해당 버튼을 한번 누를 때마다 그 시간이 동작시간에 더해진다. 버튼 A, B, C에 지정된 시간은 www.acmicpc.net • 풀이 과정 각 버튼 당 동작 시간 300, 60, 10 을 큰 순서대로 입력값 t 로 나눈 나머지를 구해 t를 갱신하고, 각각의 몫을 StringBuilder 에 더하여 정답으로써 출력한다. 만약 t 를 10으로 나눈 나머지가 0이 아닐 시 어떠한 버튼으로도 정확히 나누어 떨어지지 않으므로 -1 을 출력한다. • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; im.. 2022. 11. 14. [백준] 5585 거스름돈 - Greedy / Java • 문제 링크 5585번: 거스름돈 타로는 자주 JOI잡화점에서 물건을 산다. JOI잡화점에는 잔돈으로 500엔, 100엔, 50엔, 10엔, 5엔, 1엔이 충분히 있고, 언제나 거스름돈 개수가 가장 적게 잔돈을 준다. 타로가 JOI잡화점에서 물건을 사 www.acmicpc.net • 풀이 과정 주어진 동전의 큰 값부터 입력값 n로 나눌 수 있다면, 해당 몫을 res 변수에 누적하고 n 은 그 나머지로 갱신한다. 모든 동전에 대해 위와 같은 과정을 거친 후 구해진 잔돈의 개수 res 를 정답으로써 출력한다. • 풀이 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.i.. 2022. 11. 13. [백준] 1026 보물 - Greedy / Java • 문제 링크 1026번: 보물 첫째 줄에 N이 주어진다. 둘째 줄에는 A에 있는 N개의 수가 순서대로 주어지고, 셋째 줄에는 B에 있는 수가 순서대로 주어진다. N은 50보다 작거나 같은 자연수이고, A와 B의 각 원소는 100보다 작거 www.acmicpc.net • 풀이 과정 s 의 최솟값을 구하기 위해선 a 의 원소 중 가장 작은 값과 b 의 원소 중 가장 큰 값을 서로 곱하여 구한다. 따라서 b 에 있는 수를 재배열하면 안된는 문제 조건과 다르게 실제 구현 시 두 배열 모두 정렬이 필요하다. 정렬 후 a 는 오름차순을 따르고 b 는 역순으로 탐색하며, 각각의 값을 곱하여 sum 에 더한 후 정답으로써 출력한다. • 풀이 코드 import java.io.BufferedReader; import j.. 2022. 11. 12. [백준] 2839 설탕 배달 - Greedy / Java • 문제 링크 2839번: 설탕 배달 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그 www.acmicpc.net • 풀이 과정 입력받은 n 이 5 로 나누어 떨어지거나 0 보다 작을 때까지 n -= 3, cnt++ 을 수행한다. n 이 5로 나누어 떨어질 경우 현재의 n 값에 5 을 나눈 값을 cnt 에 더하고, n 이 음수일 경우 정확하게 n 킬로그램을 만들 수 없으므로 -1 을 cnt 에 대입한다. 이러한 과정을 거쳐 구한 최소 갯수 cnt 을 정답으로써 출력한다. • 풀이 코드 import java.io.BufferedReader; import java.io.Bu.. 2022. 11. 11. 이전 1 ··· 168 169 170 171 172 173 174 ··· 204 다음