SSAFY/SWEA

[SWEA] 1491 : 원재의 벽 꾸미기

믕비 2023. 4. 17. 19:25
반응형

 

https://swexpertacademy.com/main/talk/solvingClub/problemView.do?solveclubId=AV6kld8aisgDFASb&contestProbId=AV2b9AkKACkBBASw&probBoxId=AV-4MojKLNADFATz&type=PROBLEM&problemBoxTitle=%5BD2~D3+%EB%AC%B8%EC%A0%9C%ED%92%80%EC%9D%B4%5D+%EA%B8%B0%EC%B4%88+%EB%8B%A4%EC%A7%80%EA%B8%B0+Part4&problemBoxCnt=14 

 

SW Expert Academy

SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요!

swexpertacademy.com

문제를 이해하는 게 오래 걸렸다

최대한 많은 타일을 대입하는 과정에서 정사각형이 만들어지기 때문에 완전탐색으로 R과 C를 식에 대입하여 값을 구했음

 

[내 코드]

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Solution {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		StringTokenizer st;
		
		int T = Integer.parseInt(br.readLine());
		for(int t = 1; t <= T; t++) {
			sb.append('#').append(t).append(' ');
			
			st = new StringTokenizer(br.readLine());
			long N = Integer.parseInt(st.nextToken());
			long A = Integer.parseInt(st.nextToken());
			long B = Integer.parseInt(st.nextToken());
			long result, min = Long.MAX_VALUE;

			for(int C = 1; C <= N / 2; C++) {
				for(int R = C; R <= N / C; R++) {
					result = A*(R - C) + B*(N - R * C);
					min = Math.min(min, result);
				}
			}
			sb.append(min).append('\n');
		}
		System.out.print(sb);
	}

}

 

반응형

'SSAFY > SWEA' 카테고리의 다른 글

[SWEA] 1229 : 암호문 2  (0) 2023.04.26
[SWEA] 1228 : 암호문 1  (0) 2023.04.26
[SWEA] 1234 : 비밀번호  (0) 2023.04.26
[SWEA] 1298 : 원재의 메모리 복구하기  (0) 2023.04.17
[SWEA] 1206 : View  (0) 2023.04.17