반응형
안녕하세요
백준 알고리즘 단계별로 풀어보기 3단계 2439번 문제 별 찍기 - 2를 풀어봤습니다
별 찍기 - 1은 쉽게 풀었지만 이 문제는 약간 난이도가 있어서 시간이 조금 걸려서 풀었습니다
문제
첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제
하지만, 오른쪽을 기준으로 정렬한 별(예제 참고)을 출력하시오.
입력
첫째 줄에 N(1 ≤ N ≤ 100)이 주어진다.
출력
첫째 줄부터 N번째 줄까지 차례대로 별을 출력한다.
1. 문제 풀이
처음에 구현한 방식입니다
이중for문을 쓰기싫어서 약간 어거지로 구현한 소스코드입니다;;;
구현하는 중에는 몰랐는데 구현하고 나니 약간 지저분한 느낌이 있는 것 같습니다
어쨋든 결과를 돌리니 정답은 맞췄습니다 하지만 속도는... ㅠㅠ
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 IOException {
// *을 찍을 갯수 변수 선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String n = br.readLine();
int length = Integer.parseInt(n);
String Star = "";
String Space = "";
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 반복문을 사용해서 스페이스를 찍는다
for(int i = 0; i < length - 1; i++)
{
Space = Space + " ";
}
// 반복문을 사용해서 *을 추가한다
for(int i = 0; i < length; i++)
{
Star = Star + "*";
bw.write(Space + Star + "\n");
// 공백을 하나씩 제거한다 -> 마지막 공간은 제거하지 않는다
if(Space.length() != 0)
Space = Space.substring(1);
}
// 값 출력
bw.flush();
bw.close();
br.close();
}
}
2. 문제 풀이
이번에는 이중for문을 사용해서 구현하였습니다
보통의 정석적인 방식으로 별 찍기를 해봤습니다
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 IOException {
// *을 찍을 갯수 변수 선언
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
// 반복문 안에 반복문을 넣어서 공백과 별을 찍어줍니다
for (int i = 1; i <= n; i++) {
for (int j = n-i; j >0 ; j--) {
bw.write(" ");
}
for (int j = 1; j <= i; j++) {
bw.write("*");
}
bw.write("\n");
}
// 값 출력
bw.flush();
bw.close();
br.close();
}
}
여기까지 백준알고리즘의 2439번 문제 별 찍기 - 2를 풀은 내용이었습니다
알고리즘을 푸는데 참고가 되셨으면 좋겠습니다
다음 문제 : 2021.04.23 - [알고리즘/알고리즘JAVA] - [백준알고리즘/JAVA/for문] 10871번 문제 : X보다 작은 수
이전 문제 : 2021.04.22 - [알고리즘/알고리즘JAVA] - [백준알고리즘/JAVA/for문] 2438번 문제 : 별 찍기 - 1
반응형
그리드형
'알고리즘 > 알고리즘JAVA' 카테고리의 다른 글
[백준알고리즘/JAVA/for문] 10871번 문제 : X보다 작은 수 (5) | 2021.04.23 |
---|---|
[백준알고리즘/JAVA] error: class 클래스명 is public, should be declared in a file named 자바명.java (3) | 2021.04.23 |
[백준알고리즘/JAVA/for문] 2438번 문제 : 별 찍기 - 1 (0) | 2021.04.22 |
[백준알고리즘/JAVA/for문] 11022번 문제 : A+B - 8 (0) | 2021.04.22 |
[백준알고리즘/JAVA/for문] 11021번 문제 : A + B - 7 (0) | 2021.04.22 |