Hayden's Archive
[알고리즘] 프로그래머스 : 직사각형 별 찍기 본문
알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12969
내가 작성한 코드
최대한 for문을 덜 돌릴 방법을 생각했다. a*b+(b-1) 길이의 char[] 배열을 인자로 String 타입을 만들었고 빈 공간을 *로 일단 다 채웠다. 그 뒤 줄바꿈을 해줄 지점을 생각했고 문자열의 (a+1)*i-1번째 위치마다 줄바꿈을 해줘야겠다는 생각이 들었다. String 타입을 다시 char[] 배열로 바꿨고 해당되는 인덱스마다 '\n'을 저장했다. 그리고 char[] 배열을 인자값으로 String 객체를 생성한 뒤 출력하면 끝~!
import java.util.Scanner;
public class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int a = sc.nextInt();
int b = sc.nextInt();
String star = new String(new char[a * b + (b-1)]).replace("\0", "*");
char[] stArr = star.toCharArray();
for(int i = 1; i < b; i++) {
stArr[(a + 1) * i -1] = '\n';
}
System.out.println(new String(stArr));
}
}