Problem ๐Ÿ’ป

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

 

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

SW๊ฐœ๋ฐœ์ž๋ฅผ ์œ„ํ•œ ํ‰๊ฐ€, ๊ต์œก, ์ฑ„์šฉ๊นŒ์ง€ Total Solution์„ ์ œ๊ณตํ•˜๋Š” ๊ฐœ๋ฐœ์ž ์„ฑ์žฅ์„ ์œ„ํ•œ ๋ฒ ์ด์Šค์บ ํ”„

programmers.co.kr

 

๋ฌธ์ œ ์„ค๋ช…

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

์ œํ•œ ์กฐ๊ฑด

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

์ž…์ถœ๋ ฅ ์˜ˆ

xnanswer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8]

Approach 1 โŒ- ๋‚˜์˜ ์ดˆ๊ธฐ ์ ‘๊ทผ๋ฒ•

long[]์— ๊ฐ ์š”์†Œ๋ฅผ +x์”ฉํ•˜์—ฌ n๊ฐœ ๋งŒ๋“ค์–ด์•ผ ํ•œ๋‹ค.
      1. array[] long = new array[n];
      2. long[0] = x; long[1] = x+x; long[2] = x+x+x์ด๋ฏ€๋กœ
         for๋ฌธ์„ ์ด์šฉํ•ด ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
      3. for (int i = 0; i <= 5; i ++) {
          long[i] = x * (i+1);
           } 
      4. long[]๋ฅผ ๋ฆฌํ„ดํ•œ๋‹ค


Approach 2 โญ• - ๋‚˜์˜ ์ ‘๊ทผ๋ฒ•์— ๋Œ€ํ•œ ํ‰๊ฐ€

 

๋‹น์‹ ์˜ ์ ‘๊ทผ ๋ฐฉ์‹๊ณผ ๋…ผ๋ฆฌ๋Š” ๋งค์šฐ ์ข‹์Šต๋‹ˆ๋‹ค. for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•˜๊ณ  ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋ ค๋Š” ์•„์ด๋””์–ด๋Š” ์ •ํ™•ํ•˜๋ฉฐ, x * (i + 1)๋ฅผ ํ†ตํ•ด ์ฆ๊ฐ€ํ•˜๋Š” ๊ฐ’์„ ๋ฐฐ์—ด์— ์ €์žฅํ•˜๋Š” ๊ฒƒ๋„ ๋งž์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์ฝ”๋“œ์— ๋ช‡ ๊ฐ€์ง€ ์„ธ๋ถ€์ ์ธ ์ˆ˜์ • ๋ฐ ๋ณด์™„ ์‚ฌํ•ญ์ด ์žˆ์Šต๋‹ˆ๋‹ค. 

 

 


Solution ๐Ÿ’ก

class Solution {
   public long[] solution(int x, int n) {
      long[] result = new long[n]; // ๊ฒฐ๊ณผ๋ฅผ ์ €์žฅํ•  ๋ฐฐ์—ด ์ƒ์„ฑ
      
      for (int i = 0; i < n; i++) { // 0๋ถ€ํ„ฐ n-1๊นŒ์ง€ ๋ฐ˜๋ณด
         result[i] = (long) x * (i +1); // ๊ฐ ์š”์†Œ์— x์˜ ๋ฐฐ์ˆ˜๋ฅผ ๊ณ„์‚ฐ
   }
   
   return result; // ๊ฒฐ๊ณผ ๋ฐฐ์—ด ๋ฐ˜ํ™˜
}

 

๋…ผ๋ฆฌ์  ํ’€์ด ๊ณผ์ • :

1. long ๋ฐฐ์—ด ์ƒ์„ฑ

 - ๋ฌธ์ œ์˜ ์กฐ๊ฑด์—์„œ x์™€ n์˜ ๊ฐ’์ด ํด ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ, ๊ฒฐ๊ณผ ๋ฐฐ์—ด์€ long[] ํƒ€์ž…์ด์–ด์•ผ ํ•œ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด, x = 10,000,000์ด๊ณ  n = 1,000์ธ ๊ฒฝ์šฐ, x * n์˜ ๊ฐ’์ด int ๋ฒ”์œ„๋ฅผ ์ดˆ๊ณผํ•  ์ˆ˜ ์žˆ๋‹ค. ๋”ฐ๋ผ์„œ long ํƒ€์ž… ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค.

 

2. ๋ฐฐ์—ด ์ดˆ๊ธฐํ™”

 - new long[n]๋ฅผ ์‚ฌ์šฉํ•ด ํฌ๊ธฐ๊ฐ€ n์ธ ๋ฐฐ์—ด์„ ์ƒ์„ฑํ•œ๋‹ค.

 

3. ๋ฐ˜๋ณต๋ฌธ์œผ๋กœ ๊ฐ’ ๊ณ„์‚ฐ

 for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ i = 0๋ถ€ํ„ฐ n - 1๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.

 ๊ฐ ๋ฐ˜๋ณต์—์„œ x์˜ ๋ฐฐ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•˜๊ณ  result[i]์— ์ €์žฅํ•œ๋‹ค.

  i + 1์€ x์˜ 1๋ฐฐ, 2๋ฐฐ, …, n๋ฐฐ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค.

 

4. ๋ฐฐ์—ด ๋ฐ˜ํ™˜

 ๊ณ„์‚ฐ์ด ์™„๋ฃŒ๋œ ๋ฐฐ์—ด์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค.

 

 


๋‚ด๊ฐ€ ๋ณด์™„ํ•ด์•ผ ํ•  ์  :

 

1. ๋ฐฐ์—ด ์„ ์–ธ ๋ฐฉ์‹

 array[] long = new array[n];๋กœ ์ž‘์„ฑํ–ˆ๋Š”๋ฐ, ์ด๋Š” ๋ฌธ๋ฒ•์ ์œผ๋กœ ํ‹€๋ ธ๋‹ค.

 ์˜ฌ๋ฐ”๋ฅธ ์„ ์–ธ: long[] array = new long[n];

 

2. ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด

 for (int i = 0; i <= 5; i++)์—์„œ i <= 5๋Š” ํŠน์ • ๊ฐ’ 5๊นŒ์ง€๋งŒ ๋ฐ˜๋ณตํ•˜๋ฏ€๋กœ, ์ด๋ฅผ ์ผ๋ฐ˜์ ์ธ n๊นŒ์ง€ ๋ฐ˜๋ณตํ•˜๋„๋ก ์ˆ˜์ •ํ•ด์•ผ ํ•œ๋‹ค

: i < n.

 

3. ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ

 ๊ฐ€๋…์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ๋ฐฐ์—ด์˜ ์ด๋ฆ„์„ ๋” ๋ช…ํ™•ํ•˜๊ฒŒ ์ง€์ •ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ์˜ˆ: result ๋˜๋Š” answer.

 

4. ์ž๋ฃŒํ˜• ์ฒ˜๋ฆฌ

 x๊ฐ€ int ํƒ€์ž…์ด์ง€๋งŒ x * (i + 1)์€ long ๋ฒ”์œ„๋กœ ํ™•์žฅ๋  ์ˆ˜ ์žˆ์œผ๋ฏ€๋กœ ๋ช…์‹œ์ ์œผ๋กœ (long) x๋ฅผ ๋ณ€ํ™˜ํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค.


๋ณด์™„๋œ ๋…ผ๋ฆฌ:

1. long[] ๋ฐฐ์—ด์„ new long[n]์œผ๋กœ ์ƒ์„ฑํ•œ๋‹ค. (array[] long์€ ๋ฌธ๋ฒ• ์˜ค๋ฅ˜์ž„.)

2. ๋ฐ˜๋ณต๋ฌธ์€ 0๋ถ€ํ„ฐ n - 1๊นŒ์ง€ ์ˆœํšŒํ•˜๋ฉฐ, ๊ฐ ๋ฐฐ์—ด ์š”์†Œ์— x์˜ ๋ฐฐ์ˆ˜๋ฅผ ์ €์žฅํ•œ๋‹ค.

3. ๋ฐ˜๋ณต๋ฌธ์˜ ์กฐ๊ฑด์€ ๋ฐฐ์—ด์˜ ํฌ๊ธฐ n์— ๋”ฐ๋ผ ๋™์ ์œผ๋กœ ์„ค์ •ํ•ด์•ผ ํ•œ๋‹ค.

4. x * (i + 1) ์—ฐ์‚ฐ์ด long ํƒ€์ž…์œผ๋กœ ์•ˆ์ „ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋˜๋„๋ก ํ˜•๋ณ€ํ™˜์„ ์ถ”๊ฐ€ํ•œ๋‹ค.


Reference ๐Ÿ“„

+ Recent posts