Java/코딩테스트(baekjoon)
[baekjoon][Java] 2447번 - 별 찍기 - 10
s.a
2022. 7. 4. 15:20
반응형
문제


제출답안 (2022.07.04)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
String[] firstStar = {"***",
"* *",
"***"};
if(num == 3) {
printArray(firstStar);
}else {
String[] result = drawStringStar(firstStar, num);
printArray(result);
}
}
public static String[] drawStringStar(String[] beforeArray, int num) {
String[] result = new String[beforeArray.length*3];
int childRow = 0;
StringBuilder sb = null;
for(int i = 0 ; i < result.length; i++) {
String str = beforeArray[childRow];
sb = new StringBuilder("");
sb.append(str+str+str);
result[i] = sb.toString();
childRow++;
if(childRow == beforeArray.length) {
childRow = 0;
}
}
for(int i = 0 ; i < result.length; i++) {
if(result.length/3 <= i && i < result.length * 2 /3) {
sb = new StringBuilder(result[i]);
for(int j = 0 ; j < result.length ; j++) {
if(result.length/3 <= j && j < result.length * 2 /3) {
sb.setCharAt(j, ' ');
}
}
result[i] = sb.toString();
}
}
if(result.length == num) {
return result;
}else {
return drawStringStar(result, num);
}
}
public static void printArray(String[] array) {
for(int i = 0 ; i < array.length; i++) {
System.out.println(array[i]);
}
}
}
채점결과 (2022.07.04)
