https://www.acmicpc.net/problem/7581
7581번: Cuboids
Input is a series of lines, each containing 4 integers, l, w, h and v representing the length, width height and volume of a cuboid in that order. The integers are separated by a single space. 0 < l, w, h <100, 0 < v < 100,000. In each row, one of the value
www.acmicpc.net
구현문제였습니다.
📕 풀이방법
📔 입력 및 초기화
while loop를 수행합니다. 1. 0인 index를 저장할 zeroIdx, 0인 부분의 답을 구할 변수 val, 4수를 입력할 vector변수 len을 선언 후 len에 정보를 입력해줍니다. 2. len의 원소가 모두 0이면 while loop break해줍니다.
📔 풀이과정
1. 입력시 값이 0이면 해당 index를 zeroIdx에 저장합니다.
2. len[0] ~ len[2]까지 0이 아닌 값에 대해 val과 누적곱을 해줍니다.
3. 직육면체의 부피가 0이 아니라면 가로, 세로 또는 높이 중 하나의 값이 0이라는 의미이므로 부피 / 누적곱을 val값에 저장합니다. 그렇지 않다면 그대로 부피가 val이 되므로 다른 조치를 할 필요가 없습니다.
📔 정답출력
for loop를 수행하며
1. zeroIdx가 아니라면 len의 값을 출력합니다.
2. 맞다면 val값을 출력해줍니다.
📕 Code
#include <bits/stdc++.h>
using namespace std;
int main(){
while(1){
int zeroIdx, val = 1;
vector <int> len(4);
for(int i = 0; i < 4; i++) {
cin >> len[i];
if(!len[i]) zeroIdx = i;
}
if(!len[0] && !len[1] && !len[2] && !len[3]) break;
for(int i = 0; i < 3; i++) if(len[i]) val *= len[i];
if(len[3]) val = len[3] / val;
for(int i = 0; i < 4; i++) {
if(i == zeroIdx) cout << val << ' ';
else cout << len[i] << ' ';
}
cout << '\n';
}
}
'Algorithm > Implementation' 카테고리의 다른 글
(C++) - 백준(BOJ) 24082 : 立方体 (Cube) (0) | 2022.01.11 |
---|---|
(C++) - 백준(BOJ) 24078 : 余り (Remainder) (0) | 2022.01.11 |
(Python) - 백준(BOJ) 6976 : Divisibility by 11 (0) | 2022.01.07 |
(C++) - 백준(BOJ) 15751 : Teleportation (0) | 2022.01.06 |
(Python) - 백준(BOJ) 6974 : Long Division (0) | 2022.01.04 |