JavaRush /Java Blog /Random-KO /Java์—์„œ ์ง€์ˆ˜ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

Java์—์„œ ์ง€์ˆ˜ํ™”ํ•˜๋Š” ๋ฐฉ๋ฒ•

Random-KO ๊ทธ๋ฃน์— ๊ฒŒ์‹œ๋˜์—ˆ์Šต๋‹ˆ๋‹ค
์•ˆ๋…•ํ•˜์„ธ์š”! ์ธํ„ฐ๋„ท ๊ฒ€์ƒ‰์„ ํ•˜๊ฑฐ๋‚˜ ํฌ๋Ÿผ์— ๋„์›€์„ ์š”์ฒญํ•˜๋Š” ๊ฒƒ์€ ์ˆ™๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์—๊ฒŒ๋„ ํ”ํ•œ ์ผ์ž…๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ฐœ๋ฐœ์—๋Š” ๋„ˆ๋ฌด๋‚˜ ๊ธฐ๋ณธ์ ์ด๊ณ  ๋‹จ์ˆœํ•ด์„œ ์ดˆ์‹ฌ์ž๋ผ๋„ ์•Œ์•„์•ผ ํ•  ์ฃผ์ œ๋“ค์ด ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์—ฌ๊ธฐ์— ๊ทธ ์ฃผ์ œ ์ค‘ ํ•˜๋‚˜๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ค๋Š˜์€ Java์—์„œ ์ง€์ˆ˜ ์—ฐ์‚ฐ์ด ์ˆ˜ํ–‰๋˜๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•ด ์ด์•ผ๊ธฐํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. Java์—์„œ ์ง€์ˆ˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• - 1๋‹น์‹ ์—๊ฒŒ ์ž„๋ฌด๊ฐ€ ์ฃผ์–ด์กŒ๋‹ค๊ณ  ์ž ์‹œ ์ƒ์ƒํ•ด ๋ด…์‹œ๋‹ค. ์–ด๋Š ์ •๋„ ์ˆซ์ž๋ฅผ ์ฐพ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋งค์šฐ ๊ฐ„๋‹จํ•ด ๋ณด์ด์ง€๋งŒ ์†”๋ฃจ์…˜์„ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ? ๊ฐ€์žฅ ์ผ๋ฐ˜์ ์ธ ๋ฐฉ๋ฒ•๊ณผ ๋ช‡ ๊ฐ€์ง€ ๋Œ€์•ˆ์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ํ•ด๊ฒฐ์ฑ…์— ๋Œ€ํ•ด "๊นŠ์ด ์‚ดํŽด๋ณด๊ธฐ" ์ „์— ๋จผ์ € ์ˆซ์ž๋ฅผ ๊ฑฐ๋“ญ์ œ๊ณฑํ•˜๋Š” ๊ฒƒ์ด ๋ฌด์—‡์ธ์ง€ ๊ธฐ์–ตํ•ด ๋ด…์‹œ๋‹ค. Java์—์„œ ์ง€์ˆ˜ ๊ณ„์‚ฐ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ• - 2๊ฑฐ๋“ญ์ œ๊ณฑํ•˜๋Š” ๊ฒƒ์€ ํ•˜๋‚˜์˜ ์ˆซ์ž์— ์—ฌ๋Ÿฌ ๋ฒˆ ๊ณฑํ•ด์ง€๋Š” ๋™์ž‘์ž…๋‹ˆ๋‹ค. ๊ณฑํ•ด์ง€๋Š” ์ˆ˜๋ฅผ ๋ฐ‘์ˆ˜, ๊ณฑํ•ด์ง€๋Š” ํšŸ์ˆ˜๋ฅผ ์ง€์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์Œ, ์ด๋Ÿฌํ•œ ๋ฐ‘์ˆ˜ ์ž์ฒด ๊ณฑ์…ˆ์˜ ๊ฒฐ๊ณผ๋ฅผ ์ง€์ˆ˜ํ™”๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 8์˜ ๊ฒฝ์šฐ 2x2x2=8์ด๋ฏ€๋กœ 2์˜ 3์ œ๊ณฑ์ž…๋‹ˆ๋‹ค. ์ˆซ์ž์˜ 2์Šน์€ ์ธ์ˆ˜๋ฅผ 2๋ฐฐ๋กœ ํ•œ๋‹ค๋Š” ์˜๋ฏธ์ด๋ฉฐ, ์ผ๋ฐ˜์ ์œผ๋กœ ์ด ๊ฑฐ๋“ญ์ œ๊ณฑ์„ ์ œ๊ณฑ์Šน์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, 4 ์ œ๊ณฑ = 4x4 = 16์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์šฐ๋ฆฌ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ƒˆ๋กœ ๊ณ ์ณค์œผ๋ฉฐ ์ด์ œ Java์—์„œ pow๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๋ฐฉ๋ฒ•, ์ฆ‰ ์ง€์ˆ˜ํ™” ๋ฐฉ๋ฒ•์œผ๋กœ ์ง์ ‘ ์ด๋™ํ•ฉ๋‹ˆ๋‹ค.
  1. ์ˆ˜ํ•™ ํŽ‘

    ์ด ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๋Š” ๊ฐ€์žฅ ์‰ฌ์šด ๋ฐฉ๋ฒ•์€ Math ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด๊ฒƒ์ด ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•˜๊ฒŒ ๋  ์†”๋ฃจ์…˜์ž…๋‹ˆ๋‹ค.

    ะšะฐะบ ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะฒะพะทะฒะตะดะตะฝะธะต ะฒ ัั‚ะตะฟะตะฝัŒ ะฒ Java - 3

    Math ํด๋ž˜์Šค์—๋Š” ์‚ผ๊ฐ๋ฒ•, ๊ธฐํ•˜ํ•™ ๋ฐ ๊ธฐํƒ€ ์ˆ˜ํ•™ ์ธก๋ฉด๊ณผ ๊ด€๋ จ๋œ ๋ฉ”์„œ๋“œ๊ฐ€ ํฌํ•จ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฉ”์†Œ๋“œ๋Š” ์ •์ ์œผ๋กœ ๊ตฌํ˜„๋˜๋ฏ€๋กœ ํด๋ž˜์Šค ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ ๋„ Math ํด๋ž˜์Šค์˜ ์ด๋ฆ„์„ ํ†ตํ•ด ์ฆ‰์‹œ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์ง€์ˆ˜ํ™”๋Š” ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋‚˜์š”?

    public static int pow(int value, int powValue) {
       return (int) Math.pow(value, powValue);
    }

    Math ํด๋ž˜์Šค์˜ ์ด ๋ฉ”์„œ๋“œ๋Š” double ์œ ํ˜•์˜ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์œ ํ˜• ์บ์ŠคํŠธ(int)๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ–ˆ์Šต๋‹ˆ๋‹ค(์ธ์ˆ˜๋„ double์ด์ง€๋งŒ ์•”์‹œ์  ์œ ํ˜• ์บ์ŠคํŠธ๊ฐ€ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค).

    ๊ทธ๋ฆฌ๊ณ  ์ง€๊ธˆ - ๋ณด๋„ˆ์Šค: ์ถ”๊ฐ€ ์˜ต์…˜.

  2. ์ˆซ์ž์˜ ์ œ๊ณฑ์˜ ๊ฐ’

    ์•„๋งˆ๋„ ๊ฐ€์žฅ ๊ฐ„๋‹จํ•œ ๊ฒƒ๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์ œ๊ณฑ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์ž‘์„ฑ๋ฉ๋‹ˆ๋‹ค.

    public static int pow(int value){
       return value*value;
    }

    ๊ธฐ๋ณธ์œผ๋กœ ์ „ํ™”ํ•˜์„ธ์š”:

    public static void main(String[] args) {
       System.out.println(Solution.pow(7));
    }

    ๊ทธ๊ฒŒ ์ „๋ถ€์ž…๋‹ˆ๋‹ค. ๋ณต์žกํ•˜๊ฑฐ๋‚˜ ๋ถˆํ•„์š”ํ•œ ๊ฒƒ์€ ์—†์Šต๋‹ˆ๋‹ค.

  3. ํž˜์— ๋Œ€ํ•œ ์ˆซ์ž

    ๊ทธ๋Ÿฌ๋‚˜ ์ œ๊ณฑ์ˆ˜๊ฐ€ ์šฐ๋ฆฌ์—๊ฒŒ ํ•„์š”ํ•œ ์ „๋ถ€๋Š” ์•„๋‹™๋‹ˆ๋‹ค. ๋Œ€๋ถ€๋ถ„์˜ ์ž‘์—…์—์„œ๋Š” ์–ด๋Š ์ •๋„ ์ˆซ์ž๊ฐ€ ํ•„์š”ํ•˜๋ฏ€๋กœ ๋‹ค์Œ์€ ์•ฝ๊ฐ„ ๋” ๋ณต์žกํ•œ ๋ฒ„์ „์ด์ง€๋งŒ ์‚ฌ์šฉ์ž ์ •์˜ Java pow ๊ฐ’์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

    public static void main(String[] args) {
       System.out.println(Solution.pow(7, 4));
    }
    
    public static int pow(int value, int powValue) {
       int result = 1;
       for (int i = 1; i <= powValue; i++) {
           result = result * value;
       }
       return result;
    }

    ์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋งค์šฐ ๊ฐ„๋‹จํ•ฉ๋‹ˆ๋‹ค. ์‹œ์ž‘์  ๊ฒฐ๊ณผ๋ฅผ ์„ค์ •ํ•œ ๋‹ค์Œ powValue๊ฐ€ ์žˆ๋Š” ๋ฃจํ”„๊ฐ€ ์‹คํ–‰๋˜๋Š” ํšŸ์ˆ˜(powValue ํšŸ์ˆ˜)๋งŒํผ ๊ฐ’์„ ๊ณฑํ•ฉ๋‹ˆ๋‹ค.

  4. ์žฌ๊ท€

    ๋‹ค์Œ ๋ฐฉ๋ฒ•์€ ์ข€ ๋” ์ด๊ตญ์ ์ด์ง€๋งŒ ๊ทธ๋‹ค์ง€ ๋ฉ‹์ง€์ง€๋Š” ์•Š์Šต๋‹ˆ๋‹ค.

    ะšะฐะบ ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะฒะพะทะฒะตะดะตะฝะธะต ะฒ ัั‚ะตะฟะตะฝัŒ ะฒ Java - 4

    ์žฌ๊ท€๋Š” ๋ฉ”์†Œ๋“œ๊ฐ€ ์ž์‹ ์„ ํ˜ธ์ถœํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๊ธฐ๋Šฅ์ž…๋‹ˆ๋‹ค. Java์—๋Š” ์ด๋Ÿฌํ•œ ๋ฉ”์ปค๋‹ˆ์ฆ˜์ด ์กด์žฌํ•˜๋ฏ€๋กœ ์ด๋Ÿฌํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์žฌ๊ท€์ ์ด๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.

    ์ „๋ถ€๋Š” ์•„๋‹ˆ๋”๋ผ๋„ ๋งŽ์€ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ์žฌ๊ท€์ ์œผ๋กœ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๊ฒƒ๋„ ์˜ˆ์™ธ๋Š” ์•„๋‹ˆ๋ฏ€๋กœ ์žฌ๊ท€์ ์ธ ๋ฐฉ์‹์œผ๋กœ ์ˆซ์ž๋ฅผ ํŠน์ • ๊ฑฐ๋“ญ์ œ๊ณฑ์œผ๋กœ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    public static int pow(int value, int powValue) {
       if (powValue == 1) {
           return value;
       } else {
           return value * pow(value, powValue - 1);
       }
    }

    ๋ณด์‹œ๋‹ค์‹œํ”ผ ๋‘ ๊ฐ€์ง€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

    1. ์žฌ๊ท€๋ฅผ ์ข…๋ฃŒํ•˜๊ธฐ ์œ„ํ•œ ์กฐ๊ฑด, ์ฆ‰ ํ•™์œ„ ๊ฐ’์ด 1์— ๋„๋‹ฌํ•˜๋ฉด ๋’ค๋กœ ๋ฌผ๋Ÿฌ๋‚˜๊ธฐ ์‹œ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
    2. powValue - 1์„ ์‚ฌ์šฉํ•˜์—ฌ ๋™์ผํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•œ ๊ฒฐ๊ณผ์— value๋ฅผ ๊ณฑํ•˜๋Š” ๋ฉ”์ปค๋‹ˆ์ฆ˜ ์ž์ฒด์ž…๋‹ˆ๋‹ค.

    ์ž, ์ด์ œ ๊ฒŒ์œผ๋ฅธ ๋ฐฉ๋ฒ•, ์ฆ‰ "์ฆ‰์‹œ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ" ๋ฐฉ๋ฒ•์„ ์‚ดํŽด๋ณผ ์ฐจ๋ก€์ž…๋‹ˆ๋‹ค.

  5. ๋น…์ •์ˆ˜

    BigInteger ํด๋ž˜์Šค์˜ ์ฃผ์š” ๋ชฉ์ ์€ ์ž„์˜ ํฌ๊ธฐ์˜ ์ •์ˆ˜๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฒƒ์ด์ง€๋งŒ ๋™์‹œ์— ์ด๋Ÿฌํ•œ ํฐ(๋˜๋Š” ๊ทธ๋ฆฌ ํฌ์ง€ ์•Š์€) ์ˆซ์ž๋กœ ์ž‘์—…ํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ์‚ฐ์ˆ  ๋ฉ”์„œ๋“œ๋„ ์žˆ์Šต๋‹ˆ๋‹ค.

    ะšะฐะบ ะฒั‹ะฟะพะปะฝะธั‚ัŒ ะฒะพะทะฒะตะดะตะฝะธะต ะฒ ัั‚ะตะฟะตะฝัŒ ะฒ Java - 5

    ์ด ๊ธฐ์‚ฌ ์—์„œ BigInteger์— ๋Œ€ํ•œ ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์ฝ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค .

    ๊ทธ๋ ‡๋‹ค๋ฉด Java์—์„œ BigInteger๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์ง€์ˆ˜ํ™”๋Š” ์–ด๋–ป๊ฒŒ ๋ ๊นŒ์š”?

    public static int pow(int value, int powValue) {
       BigInteger a = new BigInteger(String.valueOf(value));
      return a.pow(powValue).intValue();
    }

    ์•„์ฃผ ๊ฐ„๋‹จํ•˜๊ณ  ๋ฌธ์ œ๋„ ์—†์ง€ ์•Š๋‚˜์š”?

์ž, ์˜ค๋Š˜์€ ์—ฌ๊ธฐ๊นŒ์ง€์ž…๋‹ˆ๋‹ค! ์ด์ œ ๋‹ค์–‘ํ•œ ์ง€์ˆ˜ํ™” ๋ฐฉ๋ฒ•์„ ์•Œ์•˜์Šต๋‹ˆ๋‹ค. ๋™์˜ํ•˜์„ธ์š”. ์ด๊ฒƒ์€ ์–ด๋ ค์šด ์ฃผ์ œ๊ฐ€ ์•„๋‹ˆ์—ˆ์Šต๋‹ˆ๋‹ค :)
์ฝ”๋ฉ˜ํŠธ
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION