์ƒˆ์†Œ์‹

์•Œ๊ณ ๋ฆฌ์ฆ˜/Programmers

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์นดํŽซ

  • -
728x90

1. ๋ฌธ์ œ

์›๋ณธ ๋งํฌ : https://school.programmers.co.kr/learn/courses/30/lessons/42842

 

Leo๊ฐ€ ๋ณธ ์นดํŽซ์—์„œ ๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown, ๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๊ฐ€ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ ์นดํŽซ์˜ ๊ฐ€๋กœ, ์„ธ๋กœ ํฌ๊ธฐ๋ฅผ ์ˆœ์„œ๋Œ€๋กœ ๋ฐฐ์—ด์— ๋‹ด์•„ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”.

 

๊ฐˆ์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ brown์€ 8 ์ด์ƒ 5,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
๋…ธ๋ž€์ƒ‰ ๊ฒฉ์ž์˜ ์ˆ˜ yellow๋Š” 1 ์ด์ƒ 2,000,000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.
์นดํŽซ์˜ ๊ฐ€๋กœ ๊ธธ์ด๋Š” ์„ธ๋กœ ๊ธธ์ด์™€ ๊ฐ™๊ฑฐ๋‚˜, ์„ธ๋กœ ๊ธธ์ด๋ณด๋‹ค ๊น๋‹ˆ๋‹ค.

 

2. ์ฝ”๋“œ

#include <string>
#include <vector>

using namespace std;

vector<int> solution(int brown, int yellow) {
    vector<int> answer;
    
    //์™„์ „ ํƒ์ƒ‰
    int sum = brown+yellow;
    for(int i=2;i<sum;i++){
        if(sum%i!=0) continue;
        else
        {
            if((i-2)*(sum/i-2)==yellow)
            {
                answer.push_back(sum/i);
                answer.push_back(i);
                break;
            }
            else continue;
        }
    }
    
    return answer;
}

 

3. ํ•ด์„ค

//์™„์ „ ํƒ์ƒ‰
    int sum = brown+yellow;
    for(int i=2;i<sum;i++){
        if(sum%i!=0) continue;

๋จผ์ € brown+yellow๋ฅผ ๋”ํ•˜๋ฉด ๋ชจ๋“  ํƒ€์ผ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

ํƒ€์ผ์˜ ๊ฐฏ์ˆ˜๋Š” ๊ฐ€๋กœx์„ธ๋กœ์˜ ๊ฒฝ์šฐ์˜ ์ˆ˜๋ฅผ ๊ตฌํ•  ์ˆ˜ ์žˆ๊ธฐ์— ๊ตฌํ•ด์ค๋‹ˆ๋‹ค.

ํƒ€์ผ์˜ ์„ธ๋กœ ๊ธธ์ด๋Š” 1๋ณด๋‹ค ์ปค์•ผํ•˜๊ธฐ์—(0์ด๋‚˜ 1์ธ ๊ฒฝ์šฐ ๋…ธ๋ž€์ƒ‰ ๊ตฌ์—ญ์ด ์ƒ๊ธธ ์ˆ˜ ์—†์Œ) i=2๋ถ€ํ„ฐ for๋ฌธ์„ ๋Œ๋ ค์ค๋‹ˆ๋‹ค.

if(sum%i!=0) : ๋งŒ์•ฝ ๋‚˜๋ˆ„์–ด ์งˆ์ˆ˜ ์—†๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด ๊ฐ€๋กœ ์„ธ๋กœ๋ฅผ ๊ตฌํ• ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ณ„์‚ฐํ•˜์ง€ ์•Š๊ณ  ๋„˜์–ด๊ฐ‘๋‹ˆ๋‹ค.

        else
        {
            if((i-2)*(sum/i-2)==yellow)
            {
                answer.push_back(sum/i);
                answer.push_back(i);
                break;
            }
            else continue;
        }
    }

๋‚˜๋ˆ„์–ด์ง€๋Š” ๊ฒฝ์šฐ๋ผ๋ฉด, ํ•ด๋‹น ๊ฐ€๋กœ ์„ธ๋กœ์˜ ๊ธธ์ด์—์„œ 2์”ฉ ๋นผ์„œ yellow ์˜์—ญ์˜ ๊ฐฏ์ˆ˜๋ฅผ ๊ตฌํ•ฉ๋‹ˆ๋‹ค.

๋งŒ์•ฝ yellow ๊ฐฏ์ˆ˜๊ฐ€ ๋งž๋‹ค๋ฉด ํ•ด๋‹น ๊ฐ’๋“ค์„ answer์— ์ €์žฅํ•ด์ค๋‹ˆ๋‹ค.

 

 

๋ฐ˜์‘ํ˜•
Contents

ํฌ์ŠคํŒ… ์ฃผ์†Œ๋ฅผ ๋ณต์‚ฌํ–ˆ์Šต๋‹ˆ๋‹ค

์ด ๊ธ€์ด ๋„์›€์ด ๋˜์—ˆ๋‹ค๋ฉด ๊ณต๊ฐ ๋ถ€ํƒ๋“œ๋ฆฝ๋‹ˆ๋‹ค.