Algorithm/자료구조와 함께 배우는 알고리즘 (자바편)
01-2(반복) - 반복 과정에서 조건 판단하기 (자바편)
요가하는 개발자
2023. 2. 3. 16:19
🌏 주제 : 반복 과정에서 조건 판단하기
🌏 문제
*를 n개 출력하되 w개마다 줄을 바꿔서 출력합니다.
🌏 문제 분석
package Chapter1;
import java.util.Scanner;
public class Ex1_14 {
public static void main(String[] args) {
Scanner stdIn = new Scanner (System.in);
int n;
int w;
System.out.println("*를 n개 출력하되 w개마다 줄을 바꿔서 출력합니다.");
do {
System.out.print("n의 값: ");
n = stdIn.nextInt();
} while (n <= 0);
do {System.out.print("w값: ");
w = stdIn.nextInt();
} while (w <= 0 || w > n);
// 효율적이지 않은 코드. for문을 반복할 때마다 if문을 실행해야 하므로..
// for (int i = 0; i < n; i++) {
// System.out.print("*");
// if(i % w == w - 1) { // i값을 w값으로 나눈 나머지가 w-1일 때 줄바꿈을 합니다.
// System.out.println(); // 줄 바꿈.
// }
// if( n % w != 0) { //n 값이 w의 배수가 아니라면 줄바꿈 합니다.
// System.out.println(); // 줄 바꿈.
// }
// }
// 효율적인 코드.
for(int i = 0; i < n / w; i++) { // 예를 들어 n값이 14이고 w값이 5이면 *****를 3번 출력. 즉, n값이 w값의 배수이면 출력.
System.out.println("*".repeat(w));
}
int rest = n % w; // n값이 w값의 배수가 아니라면 남아있는 마지막 줄 바꿈을 한다.
if (rest != 0) {
System.out.println("*".repeat(rest));
}
} // main
}
------
//*를 n개 출력하되 w개마다 줄을 바꿔서 출력합니다.
//n의 값: 14
//w값: 5
//*****
//*****
//****