Hayden's Archive

[알고리즘] 프로그래머스 : 직사각형 별 찍기 본문

Algorithm

[알고리즘] 프로그래머스 : 직사각형 별 찍기

_hayden 2020. 5. 15. 08:26

알고리즘 문제 출처 : 프로그래머스 https://programmers.co.kr/learn/courses/30/lessons/12969

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

내가 작성한 코드

최대한 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));
    }
}