별 찍기(1)

uglyduck.dev·2020년 9월 26일
0

알고리즘 🧮

목록 보기
4/16

#2438

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제 입력 1

5

예제 출력 1

*
**
***
****
*****

풀이

BufferedReader + ****BufferedWriter 클래스 사용

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt((br.readLine()));
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= i; j++) {
                bw.write("*");
            }
            bw.write("\n");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

다른 사람 풀이

BufferedReader + StringBuilder 클래스 사용

package com.backjoon.algorithm;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());	
        StringBuilder sb1 = new StringBuilder();
        StringBuilder sb2 = new StringBuilder();
        for(int i = 0; i < n; i++){
            sb1.append("*");
            sb2.append(sb1+"\n");
        }
        System.out.println(sb2);
    }
}

#2439

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제 입력 1

5

예제 출력 1

    *
   **
  ***
 ****
*****

풀이

BufferedReader BufferedWriter 클래스 사용

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt((br.readLine()));
        for(int i = 1; i <= N; i++) {
            for(int j = 1; j <= N-i; j++) {
                bw.write(" ");
            }
            for(int j = 1; j <= i; j++) {
                bw.write("*");
            }
            bw.write("\n");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

다른 사람 풀이

BufferedReader + StringBuffer 클래스 사용

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        StringBuffer result = new StringBuffer();
        for(int i = 1; i <= n; i++) {
            for(int k = 0; k < n - i; k++) {
                result.append(" ");
            }
            for(int j = 0; j < i; j++) {
                result.append("*");
            }
            result.append("\n");
        }
        System.out.println(result);
    }
}

#2440

문제

첫째 줄에는 별 N개, 둘째 줄에는 별 N-1개, ..., N번째 줄에는 별 1개를 찍는 문제

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제 입력 1

5

예제 출력 1

*****
****
***
**
*

풀이

BufferedReader + BufferedWriter 클래스 사용

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt((br.readLine()));
        for(int i = 1; i <= N; i++) {
            for(int j = N; j >= i; j--) {
                bw.write("*");
            }
            bw.write("\n");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

다른 사람 풀이

BufferedReader + StringBuilder 클래스 사용

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main{
    public static void main(String[] args) throws Exception{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        br.close();		
        StringBuilder sb = new StringBuilder();		
        for(int i=1; i<=n; i++){			
            for(int j=n; j>=i; j--){
                sb.append("*");
            }
            sb.append("\n");            
        }
        System.out.println(sb);
    }
}

#2441

문제

첫째줄에는별N개,둘째줄에는별N-1개, ..., N번째줄에는별1개를찍는문제

하지만,오른쪽을기준으로정렬한별(예제참고)을출력하시오.

입력

첫째줄에N(1 ≤ N ≤ 100)이주어진다.

출력

첫째줄부터N번째줄까지차례대로별을출력한다.

예제 입력 1

5

예제 출력 1

*****
 ****
  ***
   **
    *

풀이

BufferedReader + BufferedWriter 클래스 사용

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt((br.readLine()));
        for(int i = 1; i <= N; i++) {
            for(int j = N-2; j >= N-i; j--) {
                bw.write(" ");
            }
            for(int j = N; j >= i; j--) {
                bw.write("*");
            }
            bw.write("\n");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

다른 사람 풀이

BufferedReader + StringBuilder 클래스` 사용

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int N = Integer.parseInt(br.readLine());
        StringBuilder sb = new StringBuilder();
        for (int i = N; i >= 1; i--) {
            for (int j = 1; j <= N-i; j++) {
                sb.append(" ");
            }
            for (int j = 1; j <= i; j++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}

#2442

문제

첫째 줄에는 별 1개, 둘째 줄에는 별 3개, ..., N번째 줄에는 별 2×N-1개를 찍는 문제

별은 가운데를 기준으로 대칭이어야 한다.

입력

첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.

출력

첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.

예제 입력 1

5

예제 출력 1

    *
   ***
  *****
 *******
*********

풀이

BufferedReader + BufferedWriter 클래스` 사용

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;

public class Main {
    public static void main(String[] args) throws NumberFormatException, IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int N = Integer.parseInt(br.readLine());
        for(int i = 1; i <= N; i++) {
            for( int j = 1; j <= N-i; j++ ) {
                bw.write(" ");
            }
            for( int j = 1; j <= (i*2)-1; j++) {
                bw.write("*");
            }
            bw.write("\n");
        }
        br.close();
        bw.flush();
        bw.close();
    }
}

다른 사람 풀이

BufferedReader + StringBuilder 클래스 사용


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int count = Integer.parseInt(br.readLine());
        br.close();
        StringBuilder sb = new StringBuilder();
        for(int i=1;i<=count;i++) {
            for(int j=0;j<count-i;j++) {
                sb.append(" ");
            }
            for(int z=0;z<i*2-1;z++) {
                sb.append("*");
            }
            sb.append("\n");
        }
        System.out.println(sb);
    }
}
profile
시행착오, 문제해결 그 어디 즈음에.

0개의 댓글