반응형
https://www.acmicpc.net/problem/4690
brute force문제였습니다.
📕 풀이방법
📔 입력 및 초기화
세제곱을 key, 그 때의 밑을 value로 하여 저장할 map변수 m을 선언합니다.
📔 풀이과정
$$a^3 = b^3 + c^3 + d ^ 3$$a,b,c값만 결정된다면 d값은 자동으로 결정됩니다. 3중 for문을 돌며 d값에 해당하는 세제곱이 존재하는지 m으로부터 찾습니다.
📔 정답출력
해당 세제곱 d3이 존재한다면 증가하는 b,c,d에 대해서만 정답을 출력합니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
map <int,int> m;
int main(){
for(int i = 2; i <= 100; i++) m[pow(i,3)] = i;
for(int a = 2; a <= 100; a++){
for(int b = 2; b <= 100; b++){
for(int c = 2; c <= 100; c++){
int d3 = pow(a,3) - (pow(b,3) + pow(c,3));
if(!m[d3]) continue;
if(b < c && c < m[d3])
printf("Cube = %d, Triple = (%d,%d,%d)\n", a,b,c,m[d3]);
}
}
}
}
'Algorithm > Brute Force' 카테고리의 다른 글
(C++) - 백준(BOJ) 6975 : Deficient, Perfect, and Abundant (0) | 2022.01.05 |
---|---|
(C++) - 백준(BOJ) 6811 : Old Fishin’ Hole (0) | 2022.01.03 |
(C++) - 백준(BOJ) 3276 : ICONS (0) | 2021.11.29 |
(C++) - 백준(BOJ) 15051 : Máquina de café (0) | 2021.10.17 |
(C++) - 백준(BOJ) 2922 : 즐거운 단어 (0) | 2021.10.03 |