728x90
문제
코드트리 | 코딩테스트 준비를 위한 알고리즘 정석
국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.
www.codetree.ai
숫자 두 개가 주어집니다.
첫번째 수는 별 모양의 크기이고, 두번째 수는 별 모양의 종류입니다.
종류는 1부터 3까지 총 3개가 있으며, 크기 5에 대한 각 종류의 모양은 다음과 같습니다. 포맷에 맞게 출력하는 프로그램을 작성해주세요.
- 종류 1
*
**
***
****
*****
- 종류 2
*****
****
***
**
*
- 종류 3
*
***
*****
*******
*********
입력 예시
5 3
출력 예시
*
***
*****
*******
*********
코드
첫 번째 줄에 정수 n과 m이 공백으로 구분되어 주어진다.
- 1 <= n <= 100
- 1 <= m <= 3
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
if (m == 1) {
printStars1(n);
} else if (m == 2) {
printStars2(n);
} else {
printStars3(n);
}
}
// 종류 1 별 찍기
private static void printStars1(int n) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i ++) {
for (int j = 0; j < i + 1; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);
}
// 종류 2 별 찍기
private static void printStars2(int n) {
StringBuilder sb = new StringBuilder();
for (int i = 0; i < n; i++) {
for (int j = 0; j < n - i; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);
}
// 종류 3 별 찍기
private static void printStars3(int n) {
StringBuilder sb = new StringBuilder();
for (int i = 1; i <= n; i++) {
int left = n - i; // 빈칸 길이
int right = i * 2 - 1; // 별 길이
for (int j = 0; j < left; j++) {
sb.append(" ");
}
for (int j = 0; j < right; j++) {
sb.append("*");
}
sb.append("\n");
}
System.out.println(sb);
}
}
728x90