๐Ÿ“ฆ Chango/๐Ÿซ First Solve at School

[BOJ B3][C++] ๋ฐฑ์ค€ 2863๋ฒˆ: ์ด๊ฒŒ ๋ถ„์ˆ˜?

์„ ๋‹ฌ 2022. 12. 10. 22:02
๋ฐ˜์‘ํ˜•

https://www.acmicpc.net/problem/2863

 

2863๋ฒˆ: ์ด๊ฒŒ ๋ถ„์ˆ˜?

์ฒซ์งธ ์ค„์— ํ‘œ๋ฅผ ๋ช‡ ๋ฒˆ ๋Œ๋ ค์•ผ ํ‘œ์˜ ๊ฐ’์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ๊ทธ๋Ÿฌํ•œ ๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

www.acmicpc.net

 

๋ฌธ์ œ

์ƒ๊ทผ์ด๋Š” ๋ง์…ˆ๊ณผ ๋‚˜๋ˆ—์…ˆ์„ ์—„์ฒญ๋‚˜๊ฒŒ ๋ชปํ•œ๋‹ค. ์ด๋Ÿฐ ์ƒ๊ทผ์ด๋ฅผ ์œ„ํ•ด ์ •์ธ์ด๋Š” ์ƒ๊ทผ์ด์—๊ฒŒ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์ œ๋ฅผ ๋ƒˆ๋‹ค.

์ •์ธ์ด๋Š” ์–‘์˜ ์ •์ˆ˜ A,B,C,D๋กœ ์ด๋ฃจ์–ด์ง„ 2*2 ํ‘œ๋ฅผ ๊ทธ๋ ธ๋‹ค.

A B
C D

์œ„์™€ ๊ฐ™์€ ํ‘œ๊ฐ€ ์žˆ์„ ๋•Œ, ํ‘œ์˜ ๊ฐ’์€ A/C + B/D ์ด๋‹ค.

์ƒ๊ทผ์ด๋Š” ํ‘œ๋ฅผ ๋ช‡ ๋ฒˆ ๋Œ๋ฆฌ๋ฉด ํ‘œ์˜ ๊ฐ’์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š”์ง€ ๊ถ๊ธˆํ•ด์กŒ๋‹ค.

ํ‘œ๋Š” 90๋„ ์‹œ๊ณ„๋ฐฉํ–ฅ์œผ๋กœ ๋Œ๋ฆด ์ˆ˜ ์žˆ๋‹ค.

๋ฌธ์ œ ์ƒ๋‹จ์˜ ํ‘œ๋ฅผ 1๋ฒˆ ํšŒ์ „ ์‹œํ‚ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

C A
D B

2๋ฒˆ ํšŒ์ „ ์‹œํ‚ค๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์ด ๋œ๋‹ค.

D C
B A

ํ‘œ์— ์“ฐ์—ฌ ์žˆ๋Š” A,B,C,D๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ‘œ๋ฅผ ๋ช‡ ๋ฒˆ ํšŒ์ „์‹œ์ผœ์•ผ ํ‘œ์˜ ๊ฐ’์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š”์ง€ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

์ž…๋ ฅ

์ฒซ์งธ ์ค„์— A์™€ B๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๋‘˜์งธ ์ค„์— C์™€ D๊ฐ€ ๊ณต๋ฐฑ์œผ๋กœ ๊ตฌ๋ถ„๋˜์–ด ์ฃผ์–ด์ง„๋‹ค. ๋ชจ๋“  ์ˆ˜๋Š” 100๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์€ ์–‘์˜ ์ •์ˆ˜์ด๋‹ค.

์ถœ๋ ฅ

์ฒซ์งธ ์ค„์— ํ‘œ๋ฅผ ๋ช‡ ๋ฒˆ ๋Œ๋ ค์•ผ ํ‘œ์˜ ๊ฐ’์ด ์ตœ๋Œ€๊ฐ€ ๋˜๋Š”์ง€ ์ถœ๋ ฅํ•œ๋‹ค. ๋งŒ์•ฝ, ๊ทธ๋Ÿฌํ•œ ๊ฐ’์ด ์—ฌ๋Ÿฌ๊ฐœ๋ผ๋ฉด ๊ฐ€์žฅ ์ž‘์€ ๊ฐ’์„ ์ถœ๋ ฅํ•œ๋‹ค.

 

ํ’€์ด

// Authored by : seondal
// Co-authored by : -

// #include <bits/stdc++.h>
#include <iostream>
#include <vector>

using namespace std;

// table
// [0][1]
// [2][3]

int solution (vector<float>&table) {
    pair<int, float> ans;
    
    for(int i=0; i<4; i++) {
        // ํ…Œ์ด๋ธ” ๊ฐ’ ๊ณ„์‚ฐ
        float value = (table[0]/table[2] + table[1]/table[3]);

        if(ans.second < value)
            ans = {i, value};
        
        // ํ…Œ์ด๋ธ” ๋Œ๋ฆฌ๊ธฐ
        vector<float> tmp = table;
        
        table[1] = tmp[0];
        table[3] = tmp[1];
        table[2] = tmp[3];
        table[0] = tmp[2];
    }
    
    return ans.first;
}

int main() {
    ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);

    vector<float> table(4);
    for(int i=0; i<4; i++)
        cin >> table[i];
    
    cout << solution(table);
    
    return 0;
}

/*
 */
๋ฐ˜์‘ํ˜•