728x90
KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA
직사각형 별찍기
🏷 관련 주제 : Scanner String StringBuilder

✔️ Solution with Loop
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
for (int i = 0; i < m; i++) {
for (int j = 0; j < n; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
채점 결과
✔️ Solution with repeat()
import java.util.Scanner;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
System.out.print(String.format("%s\n","*".repeat(n)).repeat(m));
}
}

✔️ Solution with StringBuilder
import java.util.Scanner;
import java.lang.StringBuilder;
class Solution {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
StringBuilder sb = new StringBuilder();
sb.append("*".repeat(n * m));
for (int i = 1; i < m; i++) {
sb.insert(i * (n + 1) - 1, "\n");
}
System.out.print(sb.toString());
}
}

💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍
📌 오늘 만난 문제 : 이 문제에는 표준 입력으로 두 개의 정수 n과 m이 주어집니다.
별(*) 문자를 이용해 가로의 길이가 n, 세로의 길이가 m인 직사각형 형태를 출력해보세요.
정말 오랜만에 Scanner클래스를 사용해 보았다.
그런데 제출한 코드들의 실행 시간이 다 150ms 정도 나와서
더 빠른 코드가 없을까?
고민하며 이중for문도 써보고
repeat()메서드도 써보고
StringBuilder도 써 보았는데
더 빠른 코드를 찾지 못했다.
💬 무엇을 새롭게 알았는지
Scanner 객체를 사용해 보았다.
String Builder 객체를 사용해 보았다.
📚 References(참고 자료)
728x90