๐Ÿ Algorithm/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[Programmers] ํ”ผ์ž ๋‚˜๋ˆ ๋จน๊ธฐ(2)(์ž๋ฐ”)

Dhey 2023. 3. 21. 23:14
๋ฐ˜์‘ํ˜•

โžฐ๋ฌธ์ œ

๋จธ์“ฑ์ด๋„ค ํ”ผ์ž๊ฐ€๊ฒŒ๋Š” ํ”ผ์ž๋ฅผ ์—ฌ์„ฏ ์กฐ๊ฐ์œผ๋กœ ์ž˜๋ผ ์ค๋‹ˆ๋‹ค. ํ”ผ์ž๋ฅผ ๋‚˜๋ˆ ๋จน์„ ์‚ฌ๋žŒ์˜ ์ˆ˜ n์ด ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์ฃผ์–ด์งˆ ๋•Œ, n๋ช…์ด ์ฃผ๋ฌธํ•œ ํ”ผ์ž๋ฅผ ๋‚จ๊ธฐ์ง€ ์•Š๊ณ  ๋ชจ๋‘ ๊ฐ™์€ ์ˆ˜์˜ ํ”ผ์ž ์กฐ๊ฐ์„ ๋จน์–ด์•ผ ํ•œ๋‹ค๋ฉด ์ตœ์†Œ ๋ช‡ ํŒ์„ ์‹œ์ผœ์•ผ ํ•˜๋Š”์ง€๋ฅผ return ํ•˜๋„๋ก solution ํ•จ์ˆ˜๋ฅผ ์™„์„ฑํ•ด๋ณด์„ธ์š”.

 

 

์ œํ•œ์‚ฌํ•ญ

1 ≤ n ≤ 100

 

 


์ž…์ถœ๋ ฅ ์˜ˆ

n result
6 1
10 5
4 2

 


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

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

  • 6๋ช…์ด ๋ชจ๋‘ ๊ฐ™์€ ์–‘์„ ๋จน๊ธฐ ์œ„ํ•ด ํ•œ ํŒ์„ ์‹œ์ผœ์•ผ ํ”ผ์ž๊ฐ€ 6์กฐ๊ฐ์œผ๋กœ ๋ชจ๋‘ ํ•œ ์กฐ๊ฐ์”ฉ ๋จน์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • 10๋ช…์ด ๋ชจ๋‘ ๊ฐ™์€ ์–‘์„ ๋จน๊ธฐ ์œ„ํ•ด ์ตœ์†Œ 5ํŒ์„ ์‹œ์ผœ์•ผ ํ”ผ์ž๊ฐ€ 30์กฐ๊ฐ์œผ๋กœ ๋ชจ๋‘ ์„ธ ์กฐ๊ฐ์”ฉ ๋จน์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

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

  • 4๋ช…์ด ๋ชจ๋‘ ๊ฐ™์€ ์–‘์„ ๋จน๊ธฐ ์œ„ํ•ด ์ตœ์†Œ 2ํŒ์„ ์‹œํ‚ค๋ฉด ํ”ผ์ž๊ฐ€ 12์กฐ๊ฐ์œผ๋กœ ๋ชจ๋‘ ์„ธ ์กฐ๊ฐ์”ฉ ๋จน์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

 

 

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

์ฝ”๋“œ ์ค‘์‹ฌ์˜ ๊ฐœ๋ฐœ์ž ์ฑ„์šฉ. ์Šคํƒ ๊ธฐ๋ฐ˜์˜ ํฌ์ง€์…˜ ๋งค์นญ. ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค์˜ ๊ฐœ๋ฐœ์ž ๋งž์ถคํ˜• ํ”„๋กœํ•„์„ ๋“ฑ๋กํ•˜๊ณ , ๋‚˜์™€ ๊ธฐ์ˆ  ๊ถํ•ฉ์ด ์ž˜ ๋งž๋Š” ๊ธฐ์—…๋“ค์„ ๋งค์นญ ๋ฐ›์œผ์„ธ์š”.

programmers.co.kr

 


 

๐Ÿ’กํ’€์ด

์ฒ˜์Œ ์ž‘์„ฑ ์ฝ”๋“œ
class Solution {
    public int solution(int n) {
        int answer = 0;
        int min = (n < 6) ? n : 6;
        
        if(n % 6 == 0){
            answer = n / 6;
        }else{
            for(int i=1; i<min; i++){
                if(n%i == 0 && 6%i == 0){
                    answer = (n / i);
                }else{
                    answer = n*6/6;
                }
            }
        }
        return answer;
    }
}

์ฒ˜์Œ ์ž‘์„ฑํ–ˆ๋˜ ์ฝ”๋“œ์ด๋‹ค.

 

์ฒ˜์Œ์—” '์ตœ์†Œ ๋ช‡ ํŒ์„ ์‹œ์ผœ์•ผํ• ๊นŒ' ๋ผ๋Š” ๋ง์— ๊ฝ‚ํ˜”๋Š”์ง€ ๋จธ๋ฆฟ์†์— ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜ ๋ฐ–์— ์—†์—ˆ๋‹ค. 

๊ทธ๋Ÿฌ๋‚˜ ์ตœ์†Œ๊ณต๋ฐฐ์ˆ˜๋ฅผ ๊ตฌํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค ํ•  ์ˆ˜๋ก ์ฝ”๋“œ๋Š” ์ฝ”๋“œ๋Œ€๋กœ ๊ธธ์–ด์ง€๊ณ , ๋  ๊ฒƒ ๊ฐ™์€๋ฐ ๋˜์ง€ ์•Š๋Š” ์ผ๋งŒ ๋ฐ˜๋ณต๋๋‹ค. 

 

๊ทธ๋ž˜์„œ ์ „์ฒด ์ดˆ๊ธฐํ™”๋ฅผ ์‹œํ‚จ ํ›„ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋‹ค์‹œ ์ƒ๊ฐํ•ด๋ดค๋‹ค. ์ ˆ๋Œ€ ๋ณต์žกํ•˜์ง€๋„ ์–ด๋ ค์šธ ๊ฒƒ ๊ฐ™์ง€ ์•Š์€ ๋ฌธ์ œ์ผ ๊ฒƒ์ด๋ผ ์ƒ๊ฐํ–ˆ๋‹ค.

 

 

 

โญ์ œ์ถœ ์ฝ”๋“œ

class Solution {
    public int solution(int n) {
        int answer = 1;
        
        while( (6 * answer)%n != 0 ){
            answer++;            
        }
        return answer;
    }
}

ํ”ผ์ž ํŒ์˜ ์ˆ˜๋ฅผ answer์ด๋ผ ํ•˜๊ณ , ํ•œ ํŒ์— 6์กฐ๊ฐ ์ด๋ฏ€๋กœ " 6*answer ÷ ์‚ฌ๋žŒ ์ˆ˜ "์˜ ๋‚˜๋จธ์ง€ ๊ฐ’์ด 0์ด ์•„๋‹ˆ๋ผ๋ฉด answer++์„ ํ•˜์—ฌ ํ”ผ์ž๊ฐ€ ํ•œ ํŒ ์ฆ๊ฐ€ํ•˜๋„๋ก ํ•˜๊ณ , ๋‚˜๋จธ์ง€ ๊ฐ’์ด 0์ด ๋˜๋ฉด answer์„ return ํ•˜๋„๋ก ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ–ˆ๋‹ค.

 

 

์ด๋ ‡๊ฒŒ ๊ฐ„๋‹จํ•œ ์ฝ”๋“œ๋ฅผ ๋„ˆ๋ฌด ๋ณต์žกํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ ค ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ƒ๊ฐํ•ด๋ณด๋Š” ์ž์„ธ๊ฐ€ ํ•„์š”ํ•  ๊ฒƒ ๊ฐ™๋‹ค.

 

 

๋ฐ˜์‘ํ˜•