직각삼각형 별찍기에서 높이와 너비가 서로 다른 비율을 가지는 삼각형을 출력하려면, 각 줄에 출력하는 별의 개수를 계산할 때 높이와 너비의 비율을 고려해야 원하는 모양의 삼각형을 조절하여 출력할 수 있습니다.
중요한 점은 각 줄마다 별의 개수를 높이 대비 얼마나 늘릴지를 결정하는 것입니다
예를 들어, 높이가 5이고 너비가 10인 직각삼각형을 출력하고자 한다면, 각 줄마다 별의 수는 이전 줄보다 더 많아야 하며, 전체적인 너비를 넘지 않도록 계산해야 합니다.
아래에 자바 코드 예시를 들어 설명드리겠습니다
public class TriangleStars {
public static void main(String[] args) {
int height = 5; // 삼각형의 높이
int width = 10; // 삼각형의 최대 너비
// 각 줄에 별이 몇 개씩 찍힐지 계산
for (int i = 1; i <= height; i++) {
// i번째 줄의 별 개수를 계산 (예: 높이 대비 현재 줄의 위치 비율 * 너비)
int stars = (int) Math.ceil((double) i / height * width);
// 실제로 별을 찍는 부분
for (int j = 0; j < stars; j++) {
System.out.print("*");
}
// 한 줄이 끝나면 줄바꿈
System.out.println();
}
}
}
위의 코드는 높이(height)와 너비(width)를 기반으로 각 줄마다 찍히는 별의 수를 계산하도록 했습니다.
Math.ceil 함수를 사용해서 별의 수가 소수점이 나오는 경우에도 다음 정수로 올려서 출력하도록 했습니다.
위에 따라 각 줄의 별 개수가 점점 증가하여 너비를 초과하지 않는 범위에서 최대한 많은 별을 출력하게 될겁니다.