๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค/์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด(Java)

x๋งŒํผ ๊ฐ„๊ฒฉ์ด ์žˆ๋Š” n๊ฐœ์˜ ์ˆซ์ž

by carrot0911 2024. 11. 3.

๋ฌธ์ œ ์„ค๋ช…

https://school.programmers.co.kr/learn/courses/30/lessons/12954

ํ•จ์ˆ˜ solution์€ ์ •์ˆ˜ x์™€ ์ž์—ฐ์ˆ˜ n์„ ์ž…๋ ฅ ๋ฐ›์•„, x๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด x์”ฉ ์ฆ๊ฐ€ํ•˜๋Š” ์ˆซ์ž๋ฅผ n๊ฐœ ์ง€๋‹ˆ๋Š” ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋‹ค์Œ ์ œํ•œ ์กฐ๊ฑด์„ ๋ณด๊ณ , ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด์ฃผ์„ธ์š”.

์ œํ•œ ์‚ฌํ•ญ

  • x๋Š” -10,000,000 ์ด์ƒ, 10,000,000 ์ดํ•˜์ธ ์ •์ˆ˜์ž…๋‹ˆ๋‹ค.
  • n์€ 1000 ์ดํ•˜์ธ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

x n answer
2 5 [2, 4, 6, 8, 10]
4 3 [4, 8, 12]
-4 2 [-4, -8]

 

๋‚ด๊ฐ€ ์ž‘์„ฑํ•œ ์ฝ”๋“œ

์ฒ˜์Œ ๋งˆ์ฃผํ•˜๋Š” ๋ฌธ์ œ ์œ ํ˜•์ด์—ˆ๋‹ค.... ์‹œ์ž‘๋ถ€ํ„ฐ long[ ] answer = { }; ๋ผ๊ณ  ์ ํ˜€์žˆ์–ด์„œ ์–ด๋–ป๊ฒŒ ๋ฌธ์ œ๋ฅผ ํ’€์–ด๋‚˜๊ฐ€์•ผ ํ•  ์ง€ ๋ง‰๋ง‰ํ–ˆ๋‹ค.... ๐Ÿฅฒ๐Ÿฅฒ ๋ฐฐ์—ด์— ๊ฐ’ ์ž…๋ ฅํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ๋– ์˜ฌ๋ž๋Š”๋ฐ ์ฝ”๋“œ ์ž‘์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ชฐ๋ผ์„œ... ๊ตฌ๊ธ€๋ง์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค์˜ ํ’€์ด ๋ฐฉ๋ฒ•์„ ์ฐธ๊ณ ํ•ด์„œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ์—ˆ๋‹ค.. ๐Ÿ˜”๐Ÿ˜”
์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ์—์„œ ์ฝ”๋“œ๋ฅผ ๋ณด๋Š” ๊ด€์ ๊ณผ ์ž‘์„ฑ ์š”๋ น๋„ ์ค‘์š”ํ•˜๋‹ค๋Š” ๊ฒƒ์„ ๋Š๊ผˆ๋‹ค... ๐Ÿคจ 

์ •๋‹ต ์ฝ”๋“œ

class Solution {
    public long[] solution(int x, int n) {
        long[] answer = new long[n];  //n์˜ ๊ธธ์ด๋งŒํผ์˜ answer ๋ฐฐ์—ด ์ƒ์„ฑ!
        
        for (int i = 0; i < n; i++) {  //๋ฐฐ์—ด์— ๊ฐ’ ๋„ฃ๊ธฐ ์œ„ํ•ด ๋ฐ˜๋ณต๋ฌธ ์‹คํ–‰!!
            answer[i] = (long) x * (i + 1);  //์ธ๋ฑ์Šค ์ฐจ๋ก€๋Œ€๋กœ ๊ฐ’ ์ž…๋ ฅ!
        }
        
        return answer;
    }
}

์ฝ”๋“œ ์„ค๋ช…

๋จผ์ € ์ž…๋ ฅ ๋ฐ›์€ n์˜ ๊ฐœ์ˆ˜๋งŒํผ ๊ฐ’์„ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋ฅผ ์„ค์ •ํ•ด์ค€๋‹ค.
๋ฐ˜๋ณต๋ฌธ์„ ์ด์šฉํ•˜์—ฌ ๋ฐฐ์—ด์— ๊ฐ’์„ ์ˆœ์„œ๋Œ€๋กœ ์ž…๋ ฅํ•ด์ฃผ๋Š”๋ฐ, ์—ฌ๊ธฐ์„œ ๋ฐฐ์—ด์˜ ์ž๋ฆฟ์ˆ˜๋งŒํผ ๋ฐ˜๋ณตํ•œ๋‹ค!! for (int i = 0; i < n; i++) ์ฝ”๋“œ๋Š” for (int i = 0; i < answer.length; i++) ์™€ ๋™์ผํ•˜๋‹ค.
answer ๋ฐฐ์—ด์˜ 0๋ฒˆ ์ธ๋ฑ์Šค๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด์„œ x * (i + 1)๋ฅผ ๋Œ€์ž…ํ•ด์ฃผ๋ฉด์„œ, i๊ฐ€ ์ฆ๊ฐ€๋จ์— ๋”ฐ๋ผ ์ถœ๋ ฅ ๊ฐ’๋„ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ๋ฐฐ์—ด์— ์ž…๋ ฅํ•˜๊ฒŒ ๋œ๋‹ค.

์—ฌ๊ธฐ์„œ ์ค‘์š”ํ•œ ์ ์€ x ์•ž์— (long)์„ ์ž‘์„ฑํ•ด์„œ ํ˜•๋ณ€ํ™˜์„ ํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค.
ํ˜•๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š์•„๋„ ์ž…์ถœ๋ ฅ์˜ ์˜ˆ์˜ ๊ฐ’๋“ค์€ ์ถœ๋ ฅ๋˜์ง€๋งŒ ๋‹ต์•ˆ์„ ์ œ์ถœํ•˜๋ฉด ํ…Œ์ŠคํŠธ ๊ฒฐ๊ณผ์—์„œ ์‹คํŒจ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋œ๋‹ค.
๊ทธ ์ด์œ ๋Š” ์ œํ•œ ์‚ฌํ•ญ์—๋„ ๋‚˜์™€์žˆ๋“ฏ์ด x๋Š” -10,000,000 ์ด์ƒ, 10,000,000 ์ดํ•˜์ธ ์ •์ˆ˜์ด๊ณ , n์€ 1,000 ์ดํ•˜ ์ž์—ฐ์ˆ˜์ด๋‹ค.

์ตœ๋Œ€๊ฐ’์œผ๋กœ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” x(10,000,000) * n(1,000) = 10,000,000,000์ด๋‹ค.
intํ˜•์ด ํ‘œํ˜„ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฒ”์œ„๋Š” -2,147,483,648 ~ 2,147,483,647์ด๊ธฐ ๋•Œ๋ฌธ์— ํ˜•๋ณ€ํ™˜์„ ํ•˜์ง€ ์•Š์„ ๊ฒฝ์šฐ int์˜ ๋ฒ”์œ„ ๋‚ด์—์„œ ๋ฒ—์–ด๋‚˜๊ฒŒ ๋œ๋‹ค.... 
๋”ฐ๋ผ์„œ longํ˜•์œผ๋กœ ํ˜•๋ณ€ํ™˜์ด ํ•„์š”ํ•˜๋‹ค!! ๐Ÿคจ๐Ÿคจ๐Ÿคจ