본문 바로가기
학부공부/Java_Basic

Chapter 5. Loops(1)[Java Basic]

by sonpang 2021. 11. 5.
반응형

5.A - 두명의 하이스코어

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

N명의 학생의 이름과 성적을 입력으로 받아, 1등과 2등을 한 학생의 이름과 성적을 출력하는 프로그램을 작성하세요.

Write a program that prompts the user to enter the number of students and each student’s name and score, and finally displays the student with the highest score and the student with the second-highest score.

 

INPUT

* Line 1 : 학생수 N (2~10)

* Line 2 ~ N+1 : 이름 점수

- 이름은 길이가 100을 넘지 않고 공백이 포함되지 않은 문자열임

- 점수는 0~100 까지의 정수임 (동일한 점수는 존재하지 않음)

 

OUTPUT

* Line 1 : 1등을한 학생의 이름과 점수

* Line 2 : 2등을한 학생의 이름과 점수

 

SAMPLE INPUT

5

Anna 80

June 75

Brave 35

Geek 95

April 99

 

SAMPLE OUTPUT

April 99

Geek 95

 

import java.util.Scanner;
import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, grade[] = new int[n], sort_grade[] = new int[n];
        String name[] = new String[n];
 
        for(i = 0; i < n; i++){
            name[i] = input.next();
            grade[i] = input.nextInt();
            sort_grade[i] = grade[i];
        }
        Arrays.sort(sort_grade);
        for(i = 0; i < n; i++){
            if(grade[i] == sort_grade[n - 1])
                System.out.println(name[i] + " " + grade[i]);
        }
        for(i = 0; i < n; i++){
            if(grade[i] == sort_grade[n - 2])
                System.out.println(name[i] + " " + grade[i]);
        }
    }
}



5.B - GCD

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

두 정수 n1과 n2를 입력받아 최대공약수(greatest common divisor)를 구하는 프로그램을 작성하세요.

Write a program that find the greatest common divisor of two integers n1 and n2

 

INPUT

* Line 1 : 테스트케이스 T (1~1,000)

* Line 2 ~ T+1 : n1 n2

- n1과 n2는 1~1,000 범위의 정수

 

OUTPUT

* Line 1 ~ T : GCD

 

SAMPLE INPUT

4

2 3

2 4

67 203

638 932

 

SAMPLE OUTPUT

1

2

1

2

 

import java.util.Scanner;
public class Main {
    private static int cal_GCD(int a, int b){
        if(b == 0)
            return a;
        return cal_GCD(b, a%b);
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, data[][] = new int[n][2], gcd[] = new int[n];
        for(i = 0; i < n; i++){
            data[i][0] = input.nextInt();
            data[i][1] = input.nextInt();
            gcd[i] = cal_GCD(data[i][0], data[i][1]);
        }
        for(i = 0; i < n; i++)
            System.out.println(gcd[i]);
    }
}



5.C - 소인수분해

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

정수 I를 입력으로 받아 I의 모든 소인수를 오름차순으로 출력하는 프로그램을 작성하세요. 예를 들어, 120의 소인수분해 결과는 2, 2, 2, 3, 5입니다.

Write a program that reads an integer I and displays all its smallest factors in increasing order. For example, if the input integer is 120, the output should be as follows: 2, 2, 2, 3, 5.

 

INPUT

* Line 1 : 테스트케이스 T (1~1,000)

* Line 2 ~ T+1 : 정수 (2~1,000)

 

OUTPUT

* Line 1 ~ T : 소인수(factor)를 공백으로 구분해서 오름차순으로 출력

 

SAMPLE INPUT

3

24

76

119

 

SAMPLE OUTPUT

2 2 2 3

2 2 19

7 17

 

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, data[] = new int[n], factor;
        for (i = 0; i < n; i++)
            data[i] = input.nextInt();
        for (i = 0; i < n; i++) {
            factor = 2;
            while (data[i] > 1) {
                while (data[i] % factor == 0) {
                    data[i] /= factor;
                    System.out.printf("%d%s",factor, data[i] == 1 ? "\n" : " ");
                }
                factor++;
            }
        }
    }
}

 

Presentation Error
import java.util.Scanner;
public class Main {
    private static void cal_factors(int n) {
        int factor = 2;
        while (n > 1) {
            while (n % factor == 0) {
                System.out.print(factor + " ");
                n /= factor;
            }
            factor++;
        }
    }
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, data[] = new int[n];
        for (i = 0; i < n; i++)
            data[i] = input.nextInt();
        for (i = 0; i < n; i++) {
            cal_factors(data[i]);
            System.out.println();
        }
    }
}
반응형



5.D - 기본 피라미드

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

피라미드의 크기 N을 입력으로 받아 출력하는 프로그램을 작성하세요.

Write a program that prompts the user to enter an integer N from 1 to 15 and displays a pyramid.

 

INPUT

* Line 1 : 피라미드의 크기 N (1~15)

 

OUTPUT

N크기의 피라미드

 

SAMPLE INPUT

5

 

SAMPLE OUTPUT

    *

   ***

  *****

 *******

*********

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, j;
        for(i = 0; i < n ; i++){
            for(j = n - 1; j > i; j--)
                System.out.print(" ");
            for(j = 0; j <= i * 2; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}



5.E - < 피라미드

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

피라미드의 크기 N을 입력으로 받아 출력하는 프로그램을 작성하세요.

Write a program that prompts the user to enter an integer from 1 to 15 and displays a pyramid.

 

INPUT

* Line 1 : 피라미드의 크기 N (1~15)

 

OUTPUT

N크기의 피라미드

 

SAMPLE INPUT

5

 

SAMPLE OUTPUT

    *

   **

  ***

 ****

*****

 ****

  ***

   **

    *

 

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, j;
        for(i = 0; i < n ; i++){
            for(j = 0; j < n - i - 1; j++)
                System.out.print(" ");
            for(j = 0; j <= i; j++)
                System.out.print("*");
            System.out.println();
        }
        for(i = 1; i < n ; i++){
            for(j = 0; j < i; j++)
                System.out.print(" ");
            for(j = 0; j < n - i; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}



5.F - 다이아몬드

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

다이아몬드의 크기 N을 입력으로 받아 출력하는 프로그램을 작성하세요.

Write a program that prompts the user to enter an integer N from 1 to 15 and displays a diamond.

 

INPUT

* Line 1 : 다이아몬드의 크기 N (1~15)

 

OUTPUT

N크기의 다이아몬드

 

SAMPLE INPUT

5

 

SAMPLE OUTPUT

 

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, j;
        for(i = 0; i < n ; i++){
            for(j = 0; j < n - i - 1; j++)
                System.out.print(" ");
            for(j = 0; j <= i * 2; j++)
                System.out.print("*");
            System.out.println();
        }
        for(i = 1; i < n ; i++){
            for(j = 0; j < i; j++)
                System.out.print(" ");
            for(j = 0; j < (n - i) * 2 - 1; j++)
                System.out.print("*");
            System.out.println();
        }
    }
}



5.G - 숫자 피라미드

Time Limit: 1s Memory Limit: 128MB

 

DESCRIPTION

피라미드의 크기 N을 입력받아, 숫자로된 피라미드를 출력하는 프로그램을 작성하세요. 만약 N=8일 경우 다음과 같이 출력되어야 합니다.

Write a program that prompts the user to enter an integer N from 1 to 10 and displays a pyramid. If N=8, pyramid is displayed as shown in following:

INPUT

* Line 1 : 피라미드의 크기 N (1~10)

 

OUTPUT

N크기의 피라미드(각 숫자는 4칸의 공간을 할당 받습니다. 한자리 수일 경우 공백*3숫자(' 2') 이고 세자리 수일 경우 공백숫자(' 128') 입니다. 아무 숫자도 들어가지 않을 떄는 공백 4칸입니다.(' '))

 

SAMPLE INPUT

5

 

SAMPLE OUTPUT

import java.util.Scanner;
import java.lang.Math;
public class Main {
    public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int n = input.nextInt(), i, j;
        for(i = 0; i < n ; i++){
            for(j = 0; j < n - i - 1; j++)
                System.out.print("    ");
            for(j = 0; j <= i * 2; j++)
                System.out.printf("%4d", j <= i ? (int)Math.pow(2, j) : (int)Math.pow(2, 2 * i - j));
            System.out.println();
        }
    }
}




 

 

 

반응형

댓글