본문 바로가기

CodeUp/Java

[CodeUp_JAVA] 1081 ~ 1085

문제 설명

1부터 n까지, 1부터 m까지 숫자가 적힌
서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.

입력

주사위 2개의 면의 개수 n, m이 공백을 두고 입력된다.
단, n, m은 10이하의 자연수

출력

나올 수 있는 주사위의 숫자를 한 세트씩 줄을 바꿔 모두 출력한다.
첫 번째 수는 n, 두 번째 수는 m으로 고정해 출력하도록 한다.

내 풀이

import java.util.Scanner;
 
public class Main{
    public static void main(String args[]){
        
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();  // 주사위 1
        int m = sc.nextInt();  // 주사위 2
        
        for(int i = 1; i <= n; i++) {
            for(int j = 1; j <= m; j++) {
                System.out.println(i + ", " + j);
            }
        }  
          
    }
}

 

문제 설명

A, B, C, D, E, F 중 하나가 입력될 때,
1부터 F까지 곱한 16진수 구구단의 내용을 출력해보자.
(단, A ~ F 까지만 입력된다.)

입력

16진수로 한 자리 수가 입력된다.
단, A ~ F 까지만 입력된다.

출력

입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
계산 결과도 16진수로 출력해야 한다.

내 풀이

import java.util.Scanner;
 
public class Main{
    public static void main(String args[]){

        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt(16);

        for(int i = 1; i < 16; i++) {
            System.out.printf("%X * %X = %X \n", a, i, a * i);
        }   
     
    }
}

 

%X를 이용하여 16진수 대문자로 출력한다.


 

 

문제 설명

3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.

입력

10 보다 작은 정수 1개가 입력된다.
(1 ~ 9)

출력

1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.

내 풀이

import java.util.Scanner;
 
public class Main{
    public static void main(String args[]){

		Scanner sc = new Scanner(System.in);
		
		int a = sc.nextInt();
		if(a < 10) {
			for(int i = 1; i <= a; i++) {
				if(i % 3 == 0) {
					System.out.print("X" + " ");
					
				} else {
					System.out.print(i + " ");					
				}
			}  
            
		} else {
			System.out.print("10보다 낮은 수를 입력하세요.");
		}

    }
}

 

문제 설명

빨강(r), 초록(g), 파랑(b) 각각의 빛의 개수가 주어질 때,
(빛의 강약에 따라 0 ~ n-1 까지 n가지의 빛 색깔을 만들 수 있다.)

주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
총 가짓 수를 계산해보자.

입력

빨녹파(r, g, b) 각 빛의 강약에 따른 가짓수(0 ~ 128))가 공백을 사이에 두고 입력된다.
예를 들어, 3 3 3 은 각 색깔 빛에 대해서 그 강약에 따라 0~2까지 3가지의 색이 있음을 의미한다.

출력

만들 수 있는 rgb 색의 정보를 오름차순(계단을 올라가는 순, 12345... abcde..., 가나다라마...)으로
줄을 바꿔 모두 출력하고, 마지막에 그 개수를 출력한다.

내 풀이

import java.util.Scanner;
 
public class Main{
    public static void main(String args[]){

        Scanner sc = new Scanner(System.in);
        int r = sc.nextInt();
        int g = sc.nextInt();
        int b = sc.nextInt();
        
        for(int i = 0; i < r; i++) {
            for(int j = 0; j < g; j++) {
                for(int k = 0; k < b; k++) {
                    System.out.printf("%d %d %d \n", i, j, k);
                }
            }
        }

    }
}

 

문제 설명

1초 동안 마이크로 소리강약을 체크하는 수를 h
(헤르쯔, Hz 는 1초에 몇 번? 체크하는가를 의미한다.)

한 번 체크한 결과를 저장하는 비트 b
(2비트를 사용하면 0 또는 1 두 가지, 16비트를 사용하면 65536가지..)

좌우 등 소리를 저장할 트랙 개수인 채널 c
(모노는 1개, 스테레오는 2개의 트랙으로 저장함을 의미한다.)

녹음할 시간 s가 주어질 때,

필요한 저장 용량을 계산하는 프로그램을 작성해보자.

입력

h, b, c, s 가 공백을 두고 입력된다.
h는 48,000이하, b는 32이하(단, 8의배수), c는 5이하, s는 6,000이하의 자연수이다.

출력

필요한 저장 공간을 MB 단위로 바꾸어 출력한다.
단, 소수점 둘째 자리에서 반올림해 첫째 자리까지 출력하고 MB를 공백을 두고 출력한다.

내 풀이

import java.util.Scanner;

public class Main{
	public static void main(String[] args) {

		Scanner sc = new Scanner(System.in);

		double h = sc.nextInt();
		double b = sc.nextInt();
		double c = sc.nextInt();
		double s = sc.nextInt();
		double sum = (h * b * c * s) / 8;
		
		System.out.printf("%.1f MB", (sum / 1024) / 1024);

	}
}


8 bit(비트) = 1byte(바이트) // 8bit=1Byte

1024 Byte(210 byte) = 1KB(킬로 바이트) // 1024bit=1KB

1024 KB(210 KB) = 1MB(메가 바이트)

1024 MB(210 MB) = 1GB(기가 바이트)

1024 GB(210 GB) = 1TB(테라 바이트)


 

'CodeUp > Java' 카테고리의 다른 글

[CodeUp_JAVA] 1091 ~ 1095  (0) 2022.02.11
[CodeUp_JAVA] 1086 ~ 1090  (0) 2022.02.09
[CodeUp_JAVA] 1076 ~ 1080  (0) 2022.01.20
[CodeUp_JAVA] 1071 ~ 1075  (0) 2022.01.19
[CodeUp_JAVA] 1066 ~ 1070  (0) 2022.01.16