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

ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค_์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜

by carrot0911 2024. 11. 25.

๋ฌธ์ œ ์„ค๋ช…

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

 

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

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

programmers.co.kr

๋‘ ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์•„ ๋‘ ์ˆ˜์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜์™€ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜, solution์„ ์™„์„ฑํ•ด ๋ณด์„ธ์š”. ๋ฐฐ์—ด์˜ ๋งจ ์•ž์— ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜, ๊ทธ๋‹ค์Œ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๋„ฃ์–ด ๋ฐ˜ํ™˜ํ•˜๋ฉด ๋ฉ๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๋‘ ์ˆ˜ 3, 12์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 3, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 12์ด๋ฏ€๋กœ solution(3, 12)๋Š” [3, 12]๋ฅผ ๋ฐ˜ํ™˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์ œํ•œ ์‚ฌํ•ญ

  • ๋‘ ์ˆ˜๋Š” 1 ์ด์ƒ 1,000,000 ์ดํ•˜์˜ ์ž์—ฐ์ˆ˜์ž…๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ

n m return
3 12 [3, 12]
2 5 [1, 10]

์ž…์ถœ๋ ฅ ์˜ˆ ์„ค๋ช…

์ž…์ถœ๋ ฅ ์˜ˆ #1

  • ์œ„์˜ ์„ค๋ช…๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.

์ž…์ถœ๋ ฅ ์˜ˆ #2

  • ์ž์—ฐ์ˆ˜ 2์™€ 5์˜ ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋Š” 1, ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋Š” 10์ด๋ฏ€๋กœ [1, 10]์„ ๋ฆฌํ„ดํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

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

class Solution {
    public int[] solution(int n, int m) {
        int[] answer = new int[2];
        
        
        int max = 0;
        
        for (int i =1; i <= n && i <= m; i++) {
            if (n % i == 0 && m % i == 0) {
                max = i;
            }
        }
        
        answer[0] = max;
        
        answer[1] = (n * m) / max;
        
        return answer;
    }
}

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

  • int[ ] answer = new int[2] : ๊ธธ์ด๊ฐ€ 2์ธ ์ •์ˆ˜ ๋ฐฐ์—ด answer๋ฅผ ์ƒ์„ฑํ•œ๋‹ค.
  • int max = 0 : ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜๋ฅผ ์ €์žฅํ•  ๋ณ€์ˆ˜ max๋ฅผ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค.
  • for (int i = 1; i <= n && i <= m; i++) { } : for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ i๊ฐ€ 1๋ถ€ํ„ฐ n๊ณผ m ์ค‘ ์ž‘์€ ๊ฐ’๊นŒ์ง€ ๋ฐ˜๋ณตํ•œ๋‹ค.
    • if (n % i == 0 && m % i == 0) { max = i } : if๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ n๊ณผ m์„ i๋กœ ๋‚˜๋ˆ„์–ด ๋–จ์–ด์ง€๋Š” ๊ฒฝ์šฐ(i๊ฐ€ n๊ณผm์˜ ๊ณต์•ฝ์ˆ˜์ธ ๊ฒฝ์šฐ) ํ˜„์žฌ i์˜ ๊ฐ’์„ ๋ณ€์ˆ˜ max์— ์ €์žฅํ•œ๋‹ค.
  • answer[0] = max : answer ๋ฐฐ์—ด์˜ ์ฒซ ๋ฒˆ์งธ ์š”์†Œ์— ์ตœ๋Œ€๊ณต์•ฝ์ˆ˜ max๋ฅผ ์ €์žฅํ•œ๋‹ค.
  • answer[1] = (n * m) / max : ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ณ„์‚ฐํ•ด์„œ answer ๋ฐฐ์—ด์˜ ๋‘ ๋ฒˆ์งธ ์š”์†Œ์— ์ €์žฅํ•œ๋‹ค.