본문 바로가기

정올문제소스코드

Jungol_Beginner_도형만들기1

1291 : 구구단

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 {
        // TODO Auto-generated method stub
        int i, j;
        int n, m;
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        
        n = Integer.parseInt(st.nextToken());
        m = Integer.parseInt(st.nextToken());
        
        while (true) {
            if (n < 2 || n > 9 || m < 2 || m > 9) { 
                System.out.printf("INPUT ERROR!");
                System.out.printf("\n");
                st = new StringTokenizer(in.readLine());
                n = Integer.parseInt(st.nextToken());
                m = Integer.parseInt(st.nextToken());
            }
            else break;
        }   
        
        if (m > n) {
            for (i = 1; i <= 9; i++) {
                for (j = n; j <= m; j++) {
                    System.out.printf("%d * %d = %2d   ", j, i, i*j);
                }
                System.out.printf("\n");
            }
        }
        else {
            for (i = 1; i <= 9; i++) {
                for (j = n; j >= m; j--) {
                    System.out.printf("%d * %d = %2d   ", j, i, i*j);
                }
                System.out.printf("\n");
            }
        }
    }
}

범위에 맞춰서 출력하면 되는 문제.


1341 : 구구단2

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(in.readLine());
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		
		
		int a, b;
		int i, j;
		int cnt=0;
		
		a = Integer.parseInt(st.nextToken());
		b = Integer.parseInt(st.nextToken());
		
		if (b > a) {
			for (i = a; i <= b; i++) {
				cnt=1;
				for (j = 1; j <= 9; j++) {
					bw.write(String.format("%d * %d = %2d   ", i, j, i*j));
					bw.flush();
					if (cnt % 3==0)  {
						System.out.printf("\n");
					}
					cnt++;
				}
				System.out.printf("\n");
			}
		}
		else {
			for (i = a; i >= b; i--) {
				cnt=1;
				for (j = 1; j <= 9; j++) {
					bw.write(String.format("%d * %d = %2d   ", i, j, i*j));
					bw.flush();
					if (cnt % 3==0)  {
						System.out.printf("\n");
					}
					cnt++;
				}
				System.out.printf("\n");
			}
		}
	}

}

한줄에 3개씩 범위에 맞춰서 출력하면 되는 문제.


1303 : 숫자사각형1

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;

public class Main {

	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(in.readLine());
		BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
		int n, m;
		
		n = Integer.parseInt(st.nextToken());
		m = Integer.parseInt(st.nextToken());
		
		int cnt = 1;
		
		int i, j;
		
		for (i = 1; i <= n; i++) {
			for (j = 1; j <= m; j++) {
				bw.write(String.format("%d ", cnt++));
				bw.flush();
			}
			System.out.printf("\n");
		}
	}
}

for문으로 범위에 맞춰서 숫자를 증가하면서 출력하면 되는 간단한 문제.


1856 : 숫자사각형2

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 {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
         
        int a, b;
        int i, j;
         
        a = Integer.parseInt(st.nextToken());
        b = Integer.parseInt(st.nextToken());
         
        int arr[][] = new int [a + 1][b + 1];
        int num = 1;
         
        for (i = 1; i <= a; i++) {//가로
            if (i % 2 != 0) { //홀수?
                for (j = 1; j <= b; j++) {//세로
                    arr[i][j] = num++;                  
                }
            }
            else {
                for (j = b; j >= 1; j--) {//세로
                    arr[i][j] = num++;                  
                }
            }
        }
         
        for (i = 1; i <= a; i++) {
            for (j = 1; j <= b; j++) {
                System.out.printf("%d ", arr[i][j]);
            }
            System.out.printf("\n");
        }
    }
}

열이 홀수인지 짝수인지 판단해 왼→오로 출력할것인지, 오→왼으로 출력할것인지 판단해 출력하는 문제.


1304 : 숫자사각형3

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int n;
        n = Integer.parseInt(st.nextToken());
        
        int arr[][] = new int [n + 1][n + 1];
        int i, j;
        int num = 1;
        
        for (i = 1; i <= n; i++) {
            for (j = 1; j <= n; j++) {
                arr[j][i] = num++;
            }
        }
        
        for (i = 1; i <= n; i++) {
            for (j = 1; j <= n; j++) {
                bw.write(String.format("%d ", arr[i][j]));
                bw.flush();
            }
            System.out.printf("\n");
        }
    }
 
}

숫자를 증가시키면서 왼쪽 상단부터 세로로 출력을 하는 문제.


2046 : 숫자사각형4

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        BufferedWriter bw = new BufferedWriter((new OutputStreamWriter(System.out)));
         
        int a, b;
         
        a = Integer.parseInt(st.nextToken());
        b = Integer.parseInt(st.nextToken());
     
        int i, j;
        int arr[][] = new int [101][101];
        int num = 1;
         
        if (b == 1) {
            for (i = 1; i <= a; i++) {
                for (j = 1; j <= a; j++) {
                    bw.write(String.format("%d ", i));
                    bw.flush();
                }
                System.out.printf("\n");
            }   
        }
        
        else if (b == 2) {
            for (i = 1; i <= a; i++) {
                if (i % 2 != 0) {
                    for (j = 1; j <= a; j++) {
                        arr[i][j] = num++;
                    }
                    num = 1;
                }
                else {
                    for (j = a; j >= 1; j--) {
                        arr[i][j] = num++;
                    }
                    num = 1;
                }
            }
             
            for (i = 1; i <= a; i++) {           
                for (j = 1; j <= a; j++) {
                    bw.write(String.format("%d ", arr[i][j]));
                    bw.flush();
                }
                System.out.printf("\n");
            }
             
        }
        else if (b == 3) {
            for (i = 1; i <= a; i++) {
                for (j = 1; j <= a; j++) {
                    bw.write(String.format("%d ", i*j));
                    bw.flush();
                }
                System.out.printf("\n");
            }
        }
    }
 
}

크기와 종류를 입력받아 종류를 먼저 판단한 뒤, 종류와 길이에 맞게 출력하는 문제.


1307 : 문자사각형1

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int n = Integer.parseInt(st.nextToken());
        int i, j;
        char arr[][] = new char [101][101];
        int num = 1;
        char alpha = 'A';
        
        for (i = n; i >= 1; i--) {
            for (j = n; j >= 1; j--) {
                if (alpha > 'Z') {
                    alpha = 'A';
                }
                arr[j][i] = alpha++;
            }
        }
        
        for (i = 1; i <= n; i++) {
            for (j = 1; j <= n; j++) {
                bw.write(String.format("%c ", arr[i][j]));
                bw.flush();
            }
            System.out.printf("\n");
        }
    }
 
}

알파벳 순서대로 크기에 맞춰서 오른쪽 하단부터 세로로 출력을 하는 문제.


1314 : 문자사각형2

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in =  new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        int n;
        int i, j;
        char arr[][] = new char [101][101];
        char alpha = 'A';
        
        n = Integer.parseInt(st.nextToken());
         
        for (i = 1; i <= n; i++) {
            if (i % 2 != 0) {
                for (j = 1; j <= n; j++) {
                     if (alpha > 'Z') {
                         alpha = 'A';
                     }
                    arr[j][i] = alpha++;
                }
            }
            else {
                for (j = n; j >= 1; j--) {
                    if (alpha > 'Z') {
                         alpha = 'A';
                     }
                    arr[j][i] = alpha++;
                }
            }
        }
         
        for (i = 1; i <= n; i++) {
            for (j = 1; j <= n; j++) {
                bw.write(String.format("%c ", arr[i][j]));
                //bw.write(String.format("%c ", arr[i][j]));
                //bw.flush();
                bw.flush();
            }
            System.out.printf("\n");
        }
         
    }
 
}

 

알파벳 순서대로 크기에 맞춰서 왼쪽 상단부터 지그재그로 출력을 하는 문제.


1338 : 문자삼각형1

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int i, j;
        char alpha = 'A';
        int n;
        char arr[][] = new char[101][101];
        
        n = Integer.parseInt(st.nextToken());
        
        for (i = 1; i <= n; i++) {
            for (j = 0; j <= n - i; j++) {
                if (alpha > 'Z') alpha = 'A';
                arr[i + j][i] = alpha++;
            }
        }
        
        for (i = 1; i <= n; i++) {
            for (j = 1; j <= n - i; j++) {
                bw.write("  ");
                bw.flush();
                //System.out.printf("  ");
            }            
            for (j = 1; j <= i; j++) {
                bw.write(String.format("%c ", arr[i][j]));
                bw.flush();
                //System.out.printf("%c ", arr[i][j]);
            }
            System.out.printf("\n");
        }
    }
 
}

크기에 맞춰서 공백을 먼저 출력한 뒤, 알파벳 순서대로 크기에 맞춰서 삼각형 모양으로 출력하는 문제


1339 : 문자삼각형2

import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.util.StringTokenizer;
 
public class Main {
 
    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub
        BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(in.readLine());
        BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
        
        int n;
        int i, j;
        char arr[][] = new char[101][101];
        char alpha = 'A';
        n = Integer.parseInt(st.nextToken());
        if (n < 1 || n > 100 || n%2==0) {
            bw.write(("INPUT ERROR"));
            bw.flush();    
            return;
        }
        
        for (i = 1; i <= n / 2 + 1; i++) {
            for (j = 1; j <= i * 2 - 1; j++) {
                if (alpha > 'Z') {
                    alpha = 'A';
                }
                //System.out.printf("[%d,%d]",n / 2 + 1-i+j-1,n / 2 + 1-i);
                arr[n / 2 + 1-i+j-1][n / 2 + 1-i] = alpha++;
            }
        }
        
        for (i = 0; i <= n; i++) {
            for (j = 0; j <= n ; j++) {
                if(arr[i][j]!=0) {
                    bw.write(String.format("%c ", arr[i][j]));
                    //bw.flush();
                }
                
            }
            bw.flush();    
            System.out.printf("\n");
        }
    }
}

알파벳 순서대로 크기에 맞춰서 가운데부터 부채꼴 모양으로 출력하는 문제

'정올문제소스코드' 카테고리의 다른 글

Jungol_Beginner_수학1  (0) 2023.02.07
2567 : 싸이클  (0) 2022.03.18
1490 : 다음 조합(next combination)  (0) 2022.03.18
2817 : 로또(Lotto)  (0) 2022.03.18
1021 : 장난감조립  (0) 2021.12.05