View
jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1316&sca=20
JUNGOL
www.jungol.co.kr


정사각형 한 변의 길이 n과 종류 m을 입력받아서 종류 m에 맞춰 출력하는 문제이다.
while (n > 100 || m < 1 || m > 3) {
System.out.println("INPUT ERROR!");
n = sc.nextInt();
m = sc.nextInt();
}
범위에 맞지 않은 정수를 입력했을 경우엔 정수를 다시 입력받도록 했다.
(int i, j = 1로 선언해줬다)
[ 종류 1 ]

1부터 n까지 출력하되, 한 줄에 1을 n번 출력한 후 다음 줄로 넘어간다.
if (m == 1) {
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
System.out.printf("%d ", i);
}
System.out.println();
}
}
i부터 입력된 n까지 1씩 증가한 횟수만큼 반복한다. -> 반복되면 한 줄 띄운다.
그리고 j부터 n까지 1씩 증가한 횟수만큼 출력한다.

[ 종류 2 ]

왼쪽에서 오른쪽으로 너비 n만큼 출력한 다음, 방향을 바꿔서 출력한다.
else if (m == 2) {
for (i = 1; i <= n; i++) { // 1부터 n까지 반복
if (i % 2 != 0) { // 홀수면 그대로 출력
for (j = 1; j <= n; j++) {
System.out.printf("%d ", j);
}
} else { // 짝수면 뒤집어서 출력
for (j = n; j >= 1; j--) {
System.out.printf("%d ", j);
}
}
System.out.println();
}
}
짝수번째 줄은 뒤집어서 출력하도록 조건문을 또 썼는데..
이렇게 짜는 것보다 더 효율적으로 짜는 방법이 있을 것 같다 ㅠ

[ 종류 3 ]

else if (m == 3) {
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
System.out.printf("%d ",i*j);
}
System.out.println();
}
}
i랑 j 곱해줬다
이렇게 짜는게 최선일까...? 더 생각해봐야겠다


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
|
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt(); // 정사각형 한 변의 길이
int m = sc.nextInt(); // 종류
while (n > 100 || m < 1 || m > 3) {
System.out.println("INPUT ERROR!");
n = sc.nextInt();
m = sc.nextInt();
}
int i, j = 1;
if (m == 1) {
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
System.out.printf("%d ", i);
}
System.out.println();
}
} else if (m == 2) {
for (i = 1; i <= n; i++) { // 1부터 n까지 반복
if (i % 2 != 0) { // 홀수면 그대로 출력
for (j = 1; j <= n; j++) {
System.out.printf("%d ", j);
}
} else { // 짝수면 뒤집어서 출력
for (j = n; j >= 1; j--) {
System.out.printf("%d ", j);
}
}
System.out.println();
}
} else if (m == 3) {
for (i = 1; i <= n; i++) {
for (j = 1; j <= n; j++) {
System.out.printf("%d ", i * j);
}
System.out.println();
}
}
}
}
|
cs |
'Jungol' 카테고리의 다른 글
[Beginner] 1314 : 문자사각형2 (0) | 2021.02.21 |
---|---|
[Beginner] 1303 : 숫자사각형1 (0) | 2021.01.17 |
[Beginner] 1341 : 구구단2 (0) | 2021.01.15 |
[Beginner] 1291 : 구구단 (0) | 2021.01.13 |
reply