728x90
읽은 갯수만큼 *을 찍어보자.
단, 5개 단위로 구분하여 찍어보자.
1차 내가 푼 방법
만약 14개를 찍어야 할 경우. 5개씩 두개를 찍고, 나머지 4개를 찍어야한다.
for문을 이용해서 풀었다.
public class Repeat {
private static void q4_17() {
int num = 14;
int for1 = num / 5;
int for2 = (num % 5 != 0 ? 1 : 0);
for (int i = 0; i < for1; i++) {
for (int j = 0; j < 5; j++) {
System.out.print("*");
}
System.out.println();
}
if (for2 != 0) {
for (int j = 0; j < num % 5; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
충격의 교재 풀이
public class Repeat {
public static void main(String[] args) {
q4_17();
}
private static void q4_17() {
Scanner sc = new Scanner(System.in);
int num = 14;
int for1 = num / 5;
int for2 = (num % 5 != 0 ? 1 : 0);
for (int i = 0; i < num; i++) {
System.out.print("*");
if (i % 5 == 4) {
System.out.println();
}
}
if (num % 5 != 0) {
System.out.println();
}
}
}

너무 충격이었다.
순서대로 계속 이어가다, 5번째가 되면 줄바꿈을 해라.
생각지도 못한 방법이었다.
훨씬 코드가 간결하다.
그리고 교재의 2번째 방법.
내가 푼것과 교재의 혼합이랄까.
import java.util.Scanner;
public class Repeat {
public static void main(String[] args) {
q4_17();
}
private static void q4_17() {
Scanner sc = new Scanner(System.in);
int num = 14;
int for1 = num / 5;
int for2 = (num % 5 != 0 ? 1 : 0);
for (int i = 0; i < num / 5; i++) {
System.out.println("*****");
}
if (num % 5 != 0) {
for (int j = 0; j < num % 5; j++) {
System.out.print("*");
}
}
}
}
2번의 "*****"가 나타나야 하기때문에 이것을 /5 한 값을 반복한다.
내 코드는 5개를 찍었지만, 굳이 찍을 필요가 없다는것.
그리고 나머지 4개는 순서대로 찍어준다.
차근차근 더 공부해야겠다.

'JAVA' 카테고리의 다른 글
난수 중복 방지 알고리즘 - 2 (0) | 2021.08.16 |
---|---|
중복값 판단 알고리즘 (0) | 2021.08.16 |
Servlet & JSP (0) | 2021.08.11 |
Java Network and Thread (0) | 2021.08.11 |
JDBC Programming - DAO (Data Access Object) (0) | 2021.08.11 |