반응형
https://www.acmicpc.net/problem/3276
brute force로 푼 문제였습니다.
📕 풀이방법
📔 입력 및 초기화
배치해야할 조약돌의 개수 pebbles, 최소 행과 열의 합을 저장할 minSum, 그 때 행 minRow, 그 때 열 minCol을 선언 후 조약돌의 개수를 입력해줍니다.
📔 풀이과정
1. i=1 ~ pebbles까지 loop를 돕니다. 1-1. i * j = pebbles의 공식이 성립하므로 만약 i로 딱 나누어 떨어진다면 j = pebbles/i, 아니라면 j = pebbles/i + 1가 되며 지역변수 j를 선언해 해당 조건에 따라 저장해줍니다. 1-2. i + j < minSum이라면 minSum에 i + j를 저장하며 각 행과 열을 minRow, minCol에 저장해줍니다.
📔 정답출력
구해놓은 minRow, minCol을 ' '로 구분지어 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
#define MAX 0x3f3f3f3f
using namespace std;
int pebbles, minCol = MAX, minRow = MAX, minSum = MAX;
int main(){
cin >> pebbles;
for(int i = 1; i <= pebbles; i++) {
int j = pebbles % i == 0 ? pebbles / i : pebbles / i + 1;
if(i + j < minSum) {
minSum = i + j;
minRow = i;
minCol = j;
}
}
cout << minRow << ' ' << minCol;
}
📕 Test Case
input
1
답 1 1
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 6811 : Old Fishin’ Hole (0) | 2022.01.03 |
---|---|
(C++) - 백준(BOJ) 4690 : 완전 세제곱 (0) | 2021.12.06 |
(C++) - 백준(BOJ) 15051 : Máquina de café (0) | 2021.10.17 |
(C++) - 백준(BOJ) 2922 : 즐거운 단어 (0) | 2021.10.03 |
(C++) - 백준(BOJ) 13908번 : 비밀번호 (0) | 2021.09.27 |