Social Developer
Home
  • 분류 전체보기 (121)
    • Life (3)
    • Idea note (0)
    • Algorithms (84)
    • CS (16)
      • Data Structure (7)
      • Network (9)
    • Skill (13)
      • Spring (0)
      • Java (9)
      • Infra (3)
      • Etc. (1)
Home
  • 분류 전체보기 (121)
    • Life (3)
    • Idea note (0)
    • Algorithms (84)
    • CS (16)
      • Data Structure (7)
      • Network (9)
    • Skill (13)
      • Spring (0)
      • Java (9)
      • Infra (3)
      • Etc. (1)
블로그 내 검색

Social Developer

어제보다 한 걸음 더

  • Algorithms

    [백준 알고리즘] (I/O) 10992번 Java 풀이

    2020. 3. 9.

    by. SDev

    728x90

    입출력 - 2557, 1000, 2558, 10950, 10951, 10952, 10953, 11021, 11022, 11718, 11719, 11720, 11721, 2741, 2742, 2739, 1924, 8393, 10818, 2438, 2439, 2440, 2441, 2442, 2445, 2522, 2446, 10991, 10992

    출처: https://plzrun.tistory.com/entry/알고리즘-문제풀이PS-시작하기 [plzrun's algorithm]

     

    알고리즘 문제풀이(PS) 시작하기

    이런건 고수들이나 써야 하지 않나 싶지만, 그래도 1년정도 공부하면서 이 분야를 어떻게 시작해야 할지 써보려 한다. 라고 운을 뗀다음 열심히 내 얘기만 했던 후속편이다. 내 인생사가 궁금하신 분들은 이 글의..

    plzrun.tistory.com

     

    백준 알고리즘 10992번

     

     

    change Nxxxx -> Main && remove package lines!!!

    이클립스에서 작성하면서 문제 이름으로 클래스를 생성하여 풀었기 때문에

    클래스 이름을 Main으로 바꾸고, package 부분도 지우고 제출해야 정상적으로 돌아갑니다.

     

    <풀이>

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    package io;
     
    import java.util.Scanner;
     
    public class N10992 {
     
        public static void main(String[] args) {
     
            Scanner sc = new Scanner(System.in);
            int n = sc.nextInt();
            
            for(int p=0; p<n-1; p++) {
                System.out.print(" ");
            }
            System.out.print("*");
            System.out.println("");
            
            for(int p=0; p<n-2; p++) {
                for(int q=0; q<n-p-2; q++) {
                    System.out.print(" ");
                }
                System.out.print("*");
                for(int q=0; q<2*p+1; q++) {
                    System.out.print(" ");
                }
                System.out.print("*");
                System.out.println("");
            }
            
            if(n!=1) {
                for(int p=0; p<2*n-1;p++) {
                    System.out.print("*");
                }    
            }
            
        }
     
    }
     
     
     

     

    문제를 보면 겉으로는 이전까지 풀었던 별 찍기 문제와 굉장히 유사해 보이는데,

    개인적으로는 처음 접근할 때 좀 당황스러웠다.

    처음 직관적으로 들었던 생각은 마지막 행만 따로 코딩해주고 이전의 10991번 문제와 유사하게 코딩을 하면 되지 않을까 싶었는데,

    문제는 1행을 제외한 2~n-1행까지(n=입력 값) 별을 두 개만 찍는다는 것이었다.

    여기에 if문을 사용해서 처리할 수도 있었겠지만, 문제를 다르게 접근했다.

     

    이미 마지막 행을 따로 코딩할 생각을 하고 있었기때문에, 첫 행도 따로 코딩을 해주기로 한 것이다.

    즉, 문제를 세 부분으로 나눠 접근했다.(이런 접근 방식을 Divide & Conquer =분할정복 기법이라고 불렀던 것 같다.)

    첫 행, 2~(n-1)행, 마지막 행.

    이렇게 접근하니 어렵지 않게 문제가 해결되었다.

    딱 하나의 사소한 문제만 빼고...

    (n=1, 1을 입력했을 때 마지막 행을 따로 코딩한 부분에서 무시해버려야 하는데 별 하나를 찍어버렸다.)

    물론 이런 예외 case를 처리하기 위해 if문 하나를 추가해주면서 간단히 처리할 수 있었다.

     

    겉으로 보기에는 이전 10991번 문제와 굉장히 유사한 출력을 내뱉는데

    코딩은 전혀 다르게 하다보니, 참 신기하다.

    다른 분들의 풀이도 궁금해서 구글링을 통해 찾아봤는데 if문을 많이 활용하신 분들이 많았는데

    결과적으로는 그 분들의 코드가 훨씬 간결해보였다.

     

     

     

    Github: https://github.com/jaeuk9407/AlgorithmBOJ

     

    jaeuk9407/AlgorithmBOJ

    BaekJoon Online Judge Problems. Contribute to jaeuk9407/AlgorithmBOJ development by creating an account on GitHub.

    github.com

     

    저작자표시

    'Algorithms' 카테고리의 다른 글

    [백준 알고리즘] (DP) 11726번 Java 풀이  (0) 2020.03.11
    [백준 알고리즘] (DP) 1463번 Java 풀이  (0) 2020.03.10
    [백준 알고리즘] (I/O) 10991번 Java 풀이  (0) 2020.03.09
    [백준 알고리즘] (I/O) 2446번 Java 풀이  (0) 2020.03.09
    [백준 알고리즘] (I/O) 2522번 Java 풀이  (0) 2020.03.09

    댓글

    관련글

    • [백준 알고리즘] (DP) 11726번 Java 풀이 2020.03.11
    • [백준 알고리즘] (DP) 1463번 Java 풀이 2020.03.10
    • [백준 알고리즘] (I/O) 10991번 Java 풀이 2020.03.09
    • [백준 알고리즘] (I/O) 2446번 Java 풀이 2020.03.09
    맨 위로
전체 글 보기
  • 인정님 블로그
  • 성현님 블로그
Tistory 로그인
Tistory 로그아웃
로그아웃 글쓰기 관리

Today

Total

Powered by ⓒ Kakao Corp.

Designed by Nana
블로그 이미지
SDev

티스토리툴바