ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • ์•Œ๊ณ ๋ฆฌ์ฆ˜ - ์ˆซ์ž ํ”ผ๋ผ๋ฏธ๋“œ
    ๊ฐœ๋ฐœ/Algorithm 2022. 3. 16. 23:59

    ๋ฌธ์ œ


    N๊ณผ ์‹œ์ž‘ ์ˆซ์ž S๊ฐ€ ์ฃผ์–ด์ง€๋ฉด ์ˆซ์ž ํ”ผ๋ผ๋ฏธ๋“œ๋ฅผ ๋งŒ๋“œ๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.
    ์˜ˆ๋ฅผ ๋“ค์–ด, N์ด 5์ด๊ณ  S๊ฐ€ 3 ์ด๋ผ๋ฉด, ๊ทธ ์ˆซ์ž ํ”ผ๋ผ๋ฏธ๋“œ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

        3
       456
      21987
     3456789
    987654321
    • ์‹œ์ž‘ ์ˆซ์ž S๋Š” ๊ผญ๋Œ€๊ธฐ๋ถ€ํ„ฐ 1์”ฉ ์ฆ๊ฐ€ํ•œ๋‹ค.
    • ์‹œ์ž‘ ํ–‰์˜ ๋ฒˆํ˜ธ๊ฐ€ 1๋ฒˆ์ด๋ผ๊ณ  ํ–ˆ์„๋•Œ, ์ง์ˆ˜๋ฒˆ์งธ ํ–‰์€ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ 1์”ฉ ์ฆ๊ฐ€ํ•˜๋„๋ก ์ ๊ณ , ํ™€์ˆ˜๋ฒˆ์งธ ํ–‰์€ ๊ฑฐ๊พธ๋กœ ์ ๋Š”๋‹ค.
    • ์ˆซ์ž๊ฐ€ ๋งŒ์•ฝ 10์ด ๋  ๊ฒฝ์šฐ, 1๋กœ ๋ฐ”๊พธ๊ณ  ๋‹ค์‹œ ์ฆ๊ฐ€ํ•œ๋‹ค.  

     

    ์ž…๋ ฅ


    ์ž…๋ ฅ์˜ ์ฒซ ๋ฒˆ์งธ ์ค„์— N๊ณผ ์‹œ์ž‘ ์ˆซ์ž S๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. ( 1≤N≤100, 1 ≤S≤ 9)

     

     

    ์ถœ๋ ฅ


    ์ฒซ ๋ฒˆ์งธ ์ค„๋ถ€ํ„ฐ ์ˆซ์ž ํ”ผ๋ผ๋ฏธ๋“œ๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค. (๊ฐ ์ค„์— ์กด์žฌํ•˜๋Š” ๊ณต๋ฐฑ์˜ ๊ฐœ์ˆ˜์™€ ์ˆซ์ž์˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ํ™•์ธํ•ด์ฃผ์‹œ๋ฐ”๋ž๋‹ˆ๋‹ค.)

     

    ์˜ˆ์ œ ์ž…๋ ฅ


    5 3

    ์˜ˆ์ œ ์ถœ๋ ฅ


        3
       456
      21987
     3456789
    987654321

     

     

    ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ๋ฅผ ํ’€ ๋•Œ, ์ €๋Š” ์ œ ๋‚˜๋ฆ„๋Œ€๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด 3๊ฐ€์ง€๋ฅผ ๊ณ ๋ คํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค.

    1. ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฐ’์€ ๋ฌด์—‡์ธ๊ฐ€?
    2. ๊ณ ๋ คํ•ด์•ผํ•  ์ค‘์š”ํ•œ ์ด์Šˆ๋Š” ๋ฌด์—‡์ธ๊ฐ€?
    3. ๊ทธ์— ๋”ฐ๋ผ ํ•„์š”ํ•œ ์ฃผ์š” ๋ณ€์ˆ˜๋Š” ๋ฌด์—‡์ธ๊ฐ€? (๊ตต์€ ๊ธ€์”จ๋กœ ํ‘œ์‹œ)

     

    1. ์ž…๋ ฅ ๋ฐ›๋Š” ๊ฐ’์€ ๋ฌด์—‡์ธ๊ฐ€?

    - N : ์—ฌ๊ธฐ์„œ N์ด ๋‚˜ํƒ€๋‚ด๋Š” ๊ฐ’์€ '์‚ผ๊ฐํ˜•์ด ๋ช‡ํ–‰์œผ๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋Š”๊ฐ€?' ์ž…๋‹ˆ๋‹ค. ์ฃผ๋กœ ๋ช‡ํ–‰์€ ๊ณง 'for๋ฌธ์„ ๋ช‡๋ฒˆ ๋Œ๋ฆด ๊ฒƒ์ธ๊ฐ€'์— ํ•ด๋‹นํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 

    - S : S๋Š” ์‚ผ๊ฐํ˜•์—์„œ ๊ฐ€์žฅ ๊ผญ๋Œ€๊ธฐ์— ๋“ค์–ด ๊ฐˆ '์‹œ์ž‘ ํ•˜๋Š” ์ˆซ์ž' ์ž…๋‹ˆ๋‹ค.

     

    2. ๊ณ ๋ คํ•ด์•ผํ•  ์ค‘์š”ํ•œ ์ด์Šˆ๋Š” ๋ฌด์—‡์ธ๊ฐ€?

    - ๊ณต๋ฐฑ์˜ ๊ฐฏ์ˆ˜ : ์‚ผ๊ฐํ˜• ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๋ฉด, ํ•ญ์ƒ ๋จผ์ € ๊ณ ๋ ค ํ•  ๊ฒƒ์ด ํ•ด๋‹น ํ–‰์— ๋ช‡๊ฐœ์˜ ๊ณต๋ฐฑ์„ ์ฐ์–ด์ค„ ๊ฒƒ์ธ๊ฐ€? ์ž…๋‹ˆ๋‹ค. ๊ณต๋ฐฑ์€ ์•ž์ชฝ์—๋งŒ ์ฐ์–ด์ฃผ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

    --> ์—ฌ๊ธฐ์„œ๋Š” 1ํ–‰์— 4๊ฐœ, 2ํ–‰์— 3๊ฐœ, 3ํ–‰์— 2๊ฐœ ... ์ด๋Ÿฐ์‹์œผ๋กœ ์ „์ฒด ํ–‰์—์„œ ํ˜„์žฌ ํ–‰์„ ๋บ€ ๊ฐ’์ด ๋ฉ๋‹ˆ๋‹ค.

    (ex. ์ „์ฒด ํ–‰์ด 5๋ผ๊ณ  ๊ฐ€์ •ํ–ˆ์„๋•Œ, 5-1=4, 5-2=3...)

     

    - ์ˆซ์ž์˜ ๊ฐฏ์ˆ˜ : ์ˆซ์ž๋ฅผ ์ฐ์–ด์ค„ ๋•Œ, ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ์ˆซ์ž์ž…๋‹ˆ๋‹ค. 

    --> ์—ฌ๊ธฐ์„œ๋Š” 1ํ–‰์— 1๊ฐœ, 2ํ–‰์— 3๊ฐœ, 3ํ–‰์— 5๊ฐœ ... ์ด๋Ÿฐ์‹์œผ๋กœ ๋‹ค์Œํ–‰์œผ๋กœ ๊ฐˆ๋•Œ ๋งˆ๋‹ค 2๊ฐœ์”ฉ ๋Š˜์–ด๋‚ฉ๋‹ˆ๋‹ค. 

     

    - ํ™€์ˆ˜ํ–‰์ผ๋•Œ : ํ™€์ˆ˜ ํ–‰์ธ ๊ฒฝ์šฐ ์ˆซ์ž๊ฐ€ ๊ฑฐ๊พธ๋กœ ์ฐํžˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    --> ์—ฌ๊ธฐ์„œ ๋ฐ˜๋“œ์‹œ ์งš๊ณ  ๋„˜์–ด๊ฐ€์•ผํ•  ๊ฒƒ์€ ์ปดํ“จํ„ฐ๋Š” ๊ธ€์ž๋ฅผ ํ•ญ์ƒ ์™ผ์ชฝ์—์„œ ์˜ค๋ฅธ์ชฝ์œผ๋กœ ์ฐ์Šต๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ˆซ์ž๊ฐ€ 1์”ฉ ๊ฐ์†Œํ•˜๊ณ  ์žˆ๋‹ค๋Š” ๊ด€์ ์œผ๋กœ ๋ฐ”๋ผ๋ณด๊ณ  ์ฝ”๋“œ๋ฅผ ์งœ์•ผํ•ฉ๋‹ˆ๋‹ค. ๊ฐ์†Œํ•  ๊ฒฝ์šฐ ์ˆซ์ž๊ฐ€ 0์— ๋„๋‹ฌํ–ˆ์„ ๋•Œ, 9๋กœ ์น˜ํ™˜ํ•ด์ฃผ์–ด์•ผํ•ฉ๋‹ˆ๋‹ค.

     

    - ์ง์ˆ˜ํ–‰์ผ๋•Œ : ์ง์ˆ˜ ํ–‰์ธ ๊ฒฝ์šฐ ์ˆซ์ž๊ฐ€ ์ •์ƒ์ ์œผ๋กœ ์ฐํžˆ๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค.

    --> ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ˆซ์ž๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๋˜ํ•œ ์ˆซ์ž๊ฐ€ 10์ด ๋  ๊ฒฝ์šฐ, 1๋กœ ๋ฐ”๊ฟ”์ค˜์•ผํ•ฉ๋‹ˆ๋‹ค.

     

    - ์ˆซ์ž๋ฅผ ์ฐ๊ธฐ ์œ„ํ•ด ๊ณ ๋ คํ•  ๊ฒƒ.

    ์œ„์—์„œ ์ฒ˜๋Ÿผ ์ง์ˆ˜ํ–‰์—์„œ๋Š” ์ˆซ์ž๊ฐ€ 1์”ฉ ์ฆ๊ฐ€ํ•˜๊ณ , ํ™€์ˆ˜ํ–‰์—์„œ๋Š” ์ˆซ์ž๊ฐ€ 1์”ฉ ๊ฐ์†Œํ•œ๋‹ค๊ณ  ํ–ˆ์Šต๋‹ˆ๋‹ค.

    ๊ทธ๋ ‡๋‹ค๋ฉด ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๊ฐ€ ๋ฌด์—‡์ธ์ง€๋งŒ ์•Œ๋ฉด ๊ฐ„๋‹จํ•˜๊ฒŒ ํ•ด๊ฒฐ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ๋จผ์ € ์ง์ˆ˜ํ–‰์˜ ์ˆซ์ž๋ถ€ํ„ฐ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ์ง์ˆ˜ํ–‰์˜ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž๋Š” ์ด์ „ ์ˆซ์ž์˜ ์‹œ์ž‘์ˆซ์ž์— +1์„ ํ•œ ๊ฐ’์ด ์‹œ์ž‘ ์ˆซ์ž์ž„์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

    ์•„๋ž˜์— ๊ทธ๋ฆผ์„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์ง์ˆ˜ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž

    ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ, 6๋ฒˆ์งธ์— ์‹œ์ž‘ ์ˆซ์ž๋Š” 1์ด ๋จ์„ ์‰ฝ๊ฒŒ ์˜ˆ์ƒํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

     

    ๊ทธ๋ ‡๋‹ค๋ฉด ํ™€์ˆ˜ํ–‰์˜ ์‹œ์ž‘์ˆซ์ž๋Š” ์–ด๋–ป๊ฒŒ ๋  ์ง€ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค.

     

    ํ™€์ˆ˜ ์ฒซ๋ฒˆ์งธ ์ˆซ์ž

    ํ™€์ˆ˜์˜ ๊ฒฝ์šฐ์—๋Š” ์ง์ˆ˜์˜ ๋งˆ์ง€๋ง‰ ์ˆซ์ž์—์„œ ํ™€์ˆ˜ํ–‰์˜ ๋งˆ์ง€๋ง‰ ์ˆซ์ž๋ฅผ ์˜ˆ์ƒํ•œ ํ›„, ํ•ด๋‹น ํ–‰์˜ ์ˆซ์ž์˜ ๊ฐฏ์ˆ˜๋งŒํผ ์ฆ๊ฐ€์‹œํ‚จ ๋งˆ์ง€๋ง‰ ๊ฐ’์ด ๊ณง ํ™€์ˆ˜ํ–‰์˜ ์ฒซ๋ฒˆ์งธ ๊ฐ’์ด ๋˜๊ฒ ์Šต๋‹ˆ๋‹ค.

     

     

    ์ด์ œ ๊ทธ๋Ÿผ ์ฃผ์š” ๊ณ ๋ ค์‚ฌํ•ญ์„ ๋‹ค ์‚ดํŽด ๋ณด์•˜์œผ๋‹ˆ, ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ํ™•์ธํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

    ์ž์„ธํ•œ ์„ค๋ช…์€ ์ฃผ์„์„ ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š” :)

     

    import java.util.Scanner;
    
    public class Main {
    
    
        public static void main(String[] args) {
    
            int N; //๋ช‡ํ–‰
            int S; //์‹œ์ž‘์ˆซ์ž
            int prevFirst; //์ด์ „ ์‹œ์ž‘์ˆซ์ž
            int prevLast; //์ด์ „ ๋งˆ์ง€๋ง‰์ˆซ์ž
            int number = 1; //ํ–‰์—์„œ ์ˆซ์ž์˜ ๊ฐฏ์ˆ˜
    
            Scanner sc = new Scanner(System.in);
            N = sc.nextInt();
            S = sc.nextInt();
            prevFirst = S; //๊ฐ€์žฅ ์ฒ˜์Œ์— ์‹œ์ž‘์€ S๋‹ˆ๊น.
            prevLast = S; //๊ฐ€์žฅ ์ฒ˜์Œ์— ๋งˆ์ง€๋ง‰๋„ S๋‹ˆ๊น.
            for(int i = 1; i <= N; i++) {
    
                //1. ๊ณต๋ฐฑ์ฐ๊ธฐ
                for(int j = 1; j <= (N - i); j++) System.out.print(" ");
    
                //2. ์ˆซ์ž์ฐ๊ธฐ
                //์ง์ˆ˜์ธ๊ฒฝ์šฐ
                if( i % 2 == 0) {
                    int currentFirst = prevFirst + 1;
                    if(currentFirst == 10) {currentFirst = 1;}
    
                    for(int j = 0; j < number; j++) {
                        System.out.print(currentFirst);
                        prevLast = currentFirst;
                        currentFirst++;
                        if(currentFirst == 10) {currentFirst = 1;}
                    }
                }
                //ํ™€์ˆ˜์ธ๊ฒฝ์šฐ
                else {
    
                    if(i == 1) {
                        System.out.print(S);
                    }else {
                        int currentLast = prevLast + 1;
                        if(currentLast == 10) {currentLast = 1;}
    
                        for(int j = 0; j < number; j++){
                            prevFirst = currentLast; //๋งˆ์ง€๋ง‰ ๊ฐ’์ด ์•ž์œผ๋กœ ํ™€์ˆ˜ ํ–‰์˜ ์ฒซ๊ฐ’์ด ๋œ๋‹ค. ์ดํ›„์— ์ง์ˆ˜ํ–‰์—์„œ ์‹œ์ž‘๊ฐ’์„ ๊ตฌํ•  ๋•Œ ์‚ฌ์šฉ๋˜์–ด์ง„๋‹ค.
                            currentLast++;
                            if(currentLast == 10) {currentLast = 1;}
                        }
                        int currentFirst = prevFirst;
                        //๊ฐ์†Œํ•˜๋ฉด์„œ ์ฐ๋Š” ์šฉ๋„
                        for(int j = 0; j < number; j++){
                            System.out.print(currentFirst);
                            currentFirst--;
                            if(currentFirst == 0) {currentFirst = 9;}
                        }
    
                    }
                }
                number += 2; //ํ•œ ํ–‰์ด ์ง€๋‚ ๋•Œ๋งˆ๋‹ค 2๊ฐœ์”ฉ ์ˆซ์ž๊ฐฏ์ˆ˜๊ฐ€ ์ฆ๊ฐ€
                System.out.print("\n");
    
            }
    
        }
        
    }

     

    ๋Œ“๊ธ€

Designed by Tistory.