일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 스프링
- IntelliJ
- 코딩테스트
- spring boot
- MVC
- 자취
- SpringBoot
- javascript
- React
- JPA
- 취준생
- JDK
- spring
- 코테
- 프로젝트
- 디자인패턴
- 백준
- jdk11
- MariaDB
- 팀프로젝트
- 공유DB
- coding test
- Java
- Project
- 자바
- gradle
- Controller
- 입출력
- ps
- AWS
Archives
- Today
- Total
Tech Collection
[2522] 별 찍기-12 : Java 본문
728x90
반응형
문제분석
1. 2중 for문으로 출력하기
: 공백 출력 for문, 별 출력 for문 -> 한 줄에 3번의 for문 수행
2. String 입력을 통해 단순반복 입력 가능
: new String(new char[반복할 숫자]).replace('\u0000', '출력할 문자');
- new String을 통해 새로운 String만들고
- new char[]를 통해 문자 배열을 문자열로 넣어주기
- 그 문자 배열의 크기는 반복할 숫자이고, 안에 들어있는 내용은 char의 null값인 \u0000 일 것이다.
- replace를 통해 우리가 출력하고자하는 공백이나 별로 \u0000을 바꿔준다.
1과 2의 차이점: 문제 해결 시간 단축
차례대로 1번 형식으로 한 문제 해결의 시간이 488ms이고, 2번 형식으로 한 것은 264ms인 것을 알 수 있다.
Java
1번 형식 - 2중 for문
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=1; i<2*n; i++) {
if(i == n) {
for(int j=0; j<i; j++) {
System.out.print('*');
}
} else if (i < n) {
for(int j=0; j<n-i; j++) {
System.out.print(' ');
}
for(int j=0; j<i; j++) {
System.out.print('*');
}
} else {
for(int j=0; j<i-n; j++) {
System.out.print(' ');
}
for(int j=0; j<2*n-i; j++) {
System.out.print('*');
}
}
System.out.println();
}
}
}
2번 형식 - String으로 출력할 문자열 입력
import java.util.*;
class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
for(int i=1; i<2*n; i++) {
String s = "";
if(i == n) {
s = new String(new char[n]).replace('\u0000', '*');
} else if (i < n) {
s = new String(new char[n-i]).replace('\u0000', ' ');
s += new String(new char[i]).replace('\u0000', '*');
} else {
int j = 2*n-i;
s = new String(new char[n-j]).replace('\u0000', ' ');
s += new String(new char[j]).replace('\u0000', '*');
}
System.out.println(s);
}
}
}
728x90
반응형
'PS > BaekJoon' 카테고리의 다른 글
[10991] 별 찍기-16 : Java (0) | 2021.04.14 |
---|---|
[2446] 별 찍기-9 : Java (0) | 2021.04.14 |
[2445] 별 찍기-8 : Java (0) | 2021.04.05 |
[2442] 별 찍기-5 : Java (0) | 2021.04.04 |
[2441] 별 찍기-4 : Java (0) | 2021.04.04 |