-
[Java] BOJ 16937 두 스티커개발자 취업/코딩테스트 준비 2023. 6. 6. 10:33반응형
16937번: 두 스티커
첫째 줄에 모눈종이의 크기 H, W, 둘째 줄에 스티커의 수 N이 주어진다. 다음 N개의 줄에는 스티커의 크기 Ri, Ci가 주어진다.
www.acmicpc.net
정답 코드
- N개의 스터키 중 2개의 스티커만 선택하여 배치 가능 여부 확인
- 스티커 회전하는 경우까지 판별 필요
import java.io.*; import java.util.*; public class Main { static BufferedReader br; static StringTokenizer st; static int H, W, N; static int[][] arr; public static void main(String[] args) throws IOException { br = new BufferedReader(new InputStreamReader(System.in)); st = new StringTokenizer(br.readLine(), " "); H = Integer.parseInt(st.nextToken()); W = Integer.parseInt(st.nextToken()); N = Integer.parseInt(br.readLine()); arr = new int[N][2]; for (int i = 0; i < N; i++) { st = new StringTokenizer(br.readLine(), " "); arr[i][0] = Integer.parseInt(st.nextToken()); // r arr[i][1] = Integer.parseInt(st.nextToken()); // c } int max = 0; for (int i = 0; i < N; i++) { for (int j = i + 1; j < N; j++) { if (arr[i][0] + arr[j][0] <= H && Math.max(arr[i][1], arr[j][1]) <= W || arr[i][0] + arr[j][0] <= W && Math.max(arr[i][1], arr[j][1]) <= H) { max = Math.max(max, calc(i, j)); } else if (arr[i][0] + arr[j][1] <= H && Math.max(arr[i][1], arr[j][0]) <= W || arr[i][0] + arr[j][1] <= W && Math.max(arr[i][1], arr[j][0]) <= H) { max = Math.max(max, calc(i, j)); } else if (arr[i][1] + arr[j][0] <= H && Math.max(arr[i][0], arr[j][1]) <= W || arr[i][1] + arr[j][0] <= W && Math.max(arr[i][0], arr[j][1]) <= H) { max = Math.max(max, calc(i, j)); } else if (arr[i][1] + arr[j][1] <= H && Math.max(arr[i][0], arr[j][0]) <= W || arr[i][1] + arr[j][1] <= W && Math.max(arr[i][0], arr[j][0]) <= H) { max = Math.max(max, calc(i, j)); } } } System.out.println(max); } private static int calc(int i, int j) { return arr[i][0] * arr[i][1] + arr[j][0] * arr[j][1]; } }
'개발자 취업 > 코딩테스트 준비' 카테고리의 다른 글
[Java] BOJ 1748 수 이어 쓰기 1 (0) 2023.06.06 [Java] BOJ 16948 데스 나이트 (0) 2023.06.06 [Java] BOJ 12873 기념품 (0) 2023.06.04 [Java] BOJ 1342 행운의 문자열 (0) 2023.06.03 [Java] BOJ 1326 폴짝폴짝 (0) 2023.06.02