[백준] 1756: 피자 굽기 - JAVA
https://www.acmicpc.net/problem/1756 풀이구현 + 그리디 문제. 피자 반죽을 오븐의 사이즈에 맞춰서 넣는데 위에서부터 내려가다가 오븐의 사이즈가 피자 사이즈보다 작으면 그 위칸에 위치한다. 예제에서 오븐의 사이즈가 { 5, 6, 4, 3, 6, 2, 3 } 으로 주어졌는데 두번째 칸에는 위에서부터 내려와야 하므로 최대 5 사이즈의 피자가 들어갈 수 있다. 따라서 오븐의 사이즈 배열을 { 5, 5, 4, 3, 3, 2, 2 } 와 같이 바꿔주었다. 단순하게 아래에서부터 탐색하여 위치를 찾는 방법과 이분탐색으로 위치를 찾는 방법이 있었다. 단순 탐색메모리: 64440KB시간: 532ms언어: Java 11import java.io.*;import java.util.*;publi..
2024. 5. 11.
[백준] 1174: 줄어드는 수 - JAVA
https://www.acmicpc.net/problem/1174 풀이321, 950처럼 왼쪽부터 자리수가 감소할 때 줄어드는 수를 찾는 문제. 줄어드는 수를 저장해놓고 N번째 줄어드는 수를 출력해주었다. 줄어드는 수 중 가장 큰수는 "9876543210"이다. (long 범위) {9, 8, 7, 6, 5, 4, 3, 2, 1, 0}의 배열을 만들어 놓고 앞에서부터 해당 인덱스를 선택할지 여부를 조합으로 수를 만든다. 만든 수를 list에 넣어 정렬했다. list를 인덱스로 접근하여 출력하면 문제 끝. 조합을 할 때, 재귀로 접근할 수도 있고, 비트마스킹을 이용할 수 있다. 처음에 재귀로 문제를 풀고, 비트로 하는 방법을 찾아봤다. 재귀메모리: 14500KB시간: 152ms언어: Java 11impor..
2024. 5. 11.