๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm

[Algorithm] ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค Lv.1 : ์ •์ˆ˜ ์ œ๊ณฑ๊ทผ ํŒ๋ณ„

by ์ฝ”๋”ฉ๊ณต์ฑ… 2022. 11. 5.
๋ฐ˜์‘ํ˜•

์ •์ˆ˜ ์ œ๊ณฑ๊ทผ ํŒ๋ณ„

์ž„์˜์˜ ์–‘์˜ ์ •์ˆ˜ n์— ๋Œ€ํ•ด, n์ด ์–ด๋–ค ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ธ์ง€ ์•„๋‹Œ์ง€ ํŒ๋‹จํ•˜๋ ค ํ•ฉ๋‹ˆ๋‹ค. n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด๋ผ๋ฉด x+1์˜ ์ œ๊ณฑ์„ ๋ฆฌํ„ดํ•˜๊ณ , n์ด ์–‘์˜ ์ •์ˆ˜ x์˜ ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ผ๋ฉด -1์„ ๋ฆฌํ„ดํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•˜์„ธ์š”.


์ œํ•œ ์กฐ๊ฑด

- n์€ 1์ด์ƒ, 50000000000000 ์ดํ•˜์ธ ์–‘์˜ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.


์ž…์ถœ๋ ฅ ์˜ˆ

์ž…์ถœ๋ ฅ ์˜ˆ#1
121์€ ์–‘์˜ ์ •์ˆ˜ 11์˜ ์ œ๊ณฑ์ด๋ฏ€๋กœ, (11+1)๋ฅผ ์ œ๊ณฑํ•œ 144๋ฅผ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ#2
3์€ ์–‘์˜ ์ •์ˆ˜์˜ ์ œ๊ณฑ์ด ์•„๋‹ˆ๋ฏ€๋กœ, -1์„ ๋ฆฌํ„ดํ•ฉ๋‹ˆ๋‹ค.

n return
121 144
3 -1

๋ฌธ์ œ ํ’€์ด

for๋ฌธ์„ ํ†ตํ•ด i๋ฅผ ๊ณ„์† ์ฆ๊ฐ€์‹œํ‚ค๋Š”๋ฐ ๊ทธ ์กฐ๊ฑด์„ for๋ฌธ ๊ด„ํ˜ธ ์•ˆ์— ์ฃผ๋Š” ๋ฐฉ์‹์ด ์•„๋‹Œ for๋ฌธ ์•ˆ์— if๋ฌธ์„ ์“ฐ๋Š” ๋ฐฉ์‹์œผ๋กœ ์กฐ๊ฑด์„ ์ œ์‹œํ•˜๋„๋ก ํ•œ๋‹ค. i*i๊ฐ€ n๋ณด๋‹ค ํด ๋•Œ์—๋Š” -1์„ ์ถœ๋ ฅ์‹œํ‚จ๋‹ค. ์ด๋Š” ์–‘์˜ ์ •์ˆ˜์˜ ์ œ๊ณฑ์ด ์•„๋‹Œ ๊ฒฝ์šฐ -1์„ ์ถœ๋ ฅํ•˜๋ผ๋Š” ์˜๋ฏธ์ด๋‹ค. ์ฆ‰, n์ด 3์ผ ๊ฒฝ์šฐ -1์ด ์ •์ƒ์ ์œผ๋กœ ๋ฆฌํ„ด๋œ๋‹ค.

๋ฐ˜๋ฉด, n๊ณผ i*i๊ฐ€ ๊ฐ™์„ ๊ฒฝ์šฐ์—๋Š” (i+1)*(i+1)์„ ์ถœ๋ ฅ์‹œํ‚จ๋‹ค. n์ด 121์ผ ๊ฒฝ์šฐ, n๊ณผ i*i๊ฐ€ ๊ฐ™์•„์ง€๊ฒŒ ๋  ๊ฒƒ์ด๊ณ  ๊ฐ™์•„์ง€๊ฒŒ ๋  ๋•Œ์˜ i ๊ฐ’์€ 11(121์ด ์–‘์˜ ์ •์ˆ˜ 11์˜ ์ œ๊ณฑ์ด๊ธฐ ๋•Œ๋ฌธ์—)์ด๋‹ค. ์ตœ์ข…์ ์œผ๋กœ (11+1)*(11+1)==144๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ๋ฆฌํ„ด๋œ๋‹ค.

#include <stdio.h>
#include <stdbool.h>
#include <stdlib.h>

long long solution(long long n) {
    for(long long i=1 ; ; i++)
    {
        if(i*i > n)
            return -1;
        else
        {
            if(n == (i*i))
                return (i+1)*(i+1);
        }
    }
}

๋‹ค๋ฅธ ํ’€์ด ๋ฐฉ์‹

์ถœ์ฒ˜ : ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค ์Šค์ฟจ

for๋ฌธ์„ ํ†ตํ•ด i*1์˜ ๊ฐ’์ด n๋ณด๋‹ค ์ž‘๊ฑฐ๋‚˜ ๊ฐ™์„ ๋•Œ๊นŒ์ง€ i๋ฅผ ์ฆ๊ฐ€์‹œ์ผœ์ค€๋‹ค. ๋งŒ์ผ i*i๊ฐ€ n๊ณผ ๊ฐ™์„ ๋•Œ, ์ฆ‰ ์–‘์˜ ์ •์ˆ˜์˜ ์ œ๊ณฑ์ผ ๊ฒฝ์šฐ์—๋Š” return (i+1)*(i+1);์„ ํ†ตํ•ด n์ด 121์ผ ๊ฒฝ์šฐ 144๋ฅผ ์ถœ๋ ฅ์‹œ์ผœ์ค„ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์–‘์˜ ์ •์ˆ˜์˜ ์ œ๊ณฑ์ด ์•„๋‹Œ ๊ฒฝ์šฐ๋Š” -1์„ ์ถœ๋ ฅ์‹œ์ผœ์ฃผ๋„๋ก ํ•œ๋‹ค. ์œ„์˜ ๋ฌธ์ œํ’€์ด๋ณด๋‹ค ๋” ๊ฐ„๋‹จํ•œ ํ’€์ด ๋ฐฉ์‹์ด๋„ค์š”~ ใ…Žใ…Ž

long long solution(long long n) {


    for(long long i=1; i*i<=n; i++)
    {
        if(i*i == n)
            return (i+1)*(i+1);
    }
    return -1;
}
๋ฐ˜์‘ํ˜•

๋Œ“๊ธ€


Reference Book

JavaScript
HTML
CSS
๊ด‘๊ณ  ์ค€๋น„์ค‘์ž…๋‹ˆ๋‹ค.