java codingtest

11 ~ 20번

코딩탕탕 2022. 10. 23. 16:00

 

11번 사분면 고르기

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int a=scan.nextInt();
		int b=scan.nextInt();
		
		if (a > 0 && b > 0) {
			System.out.println("1");
		}else if (a < 0 && b > 0){
			System.out.println("2");
		}else if (a < 0 && b < 0){
			System.out.println("3");
		}else if (a > 0 && b < 0){
			System.out.println("4");
		}
	}
}

 

12번 알람시계

현재 상근이가 설정한 알람 시각이 주어졌을 때, 창영이의 방법을 사용한다면, 이를 언제로 고쳐야 하는지 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int a=scan.nextInt();
		int b=scan.nextInt();

		if (b < 45) {
			a -= 1;
			b = 60 - (45 - b);
			if (a < 0) {
				a = 23;
			}
			System.out.println(a + " " + b);
		}
		else {
			System.out.println(a + " " + (b - 45));
		}
	}
}

해설 ) 분은 60분까지밖에 없으므로 if문 안에 b = 60임을 인지시켜줘야 된다. 만약 45분보다 많으면 b - 45로 되지만 45분보다 작다면 60에서 45 - b를 빼줘야 된다.

a도 -1을 해주어야 된다. if 문 안에서 if문으로 a는 최대 23인 것을 인지시킨다.

if문 안에서 a > 23으로 해도 될 것 같지만, 00시에서 -가 되었을 때 23시가 되어야 되는데 단순히 -로 나오기 때문에 불가능하다.

 

 

13번 

훈제오리구이를 시작하는 시각과 오븐구이를 하는 데 필요한 시간이 분단위로 주어졌을 때, 오븐구이가 끝나는 시각을 계산하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		int a=scan.nextInt();
		int b=scan.nextInt();
		int c=scan.nextInt();
		
		//1시간은 60분이기에 c분에 60을 나눠서 나온 몫과 나머지를 각 시, 분애 합산
		a += c / 60;
		b += c % 60;

		//분이 60분이상이면 a시에 1시간 추가 후 B분에서 60분 뺴기
		if (b > 59) {
			a += 1;
			b -= 60;
		}
		//하루는 24시간이기에 a시가 24 이상이면 a에서 24 빼기
		if (a > 23) {
				a -= 24;
			}
		System.out.println(a + " " + b);
	}
}

 

 

14번

3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 600원을 상금으로 받게 된다.

3개 주사위의 나온 눈이 주어질 때, 상금을 계산하는 프로그램을 작성 하시오.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		if(a == b && a == c && b == c)
		{
			System.out.print(10000+(a*1000));
		}
		else if(a == b || a == c)
		{
			System.out.print(1000+(a*100));
		}
		else if(b == c)
		{
			System.out.print(1000+(b*100));
		}
		else
		{
			System.out.print((Math.max(a, Math.max(b, c))*100));
		}
		}
	}

Math.max 메소드는 2가지밖에 들어가지 않으므로 두번 생성하였다.

 

 

15번 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스마다 A+B를 출력한다.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		
		for(int i=1; i<a+1; i++) {
			int a1 = sc.nextInt();
			int a2 = sc.nextInt();
			
			System.out.println(a1 + a2);

		}
	}
}

 

 

16번 n이 주어졌을 때, 1부터 n까지 합을 구하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int sum = 0;
		
		for(int i=1; i<a+1; i++) {
			sum += i;
		}
		System.out.println(sum);
	}
}

 

17번 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int a = scan.nextInt();
		
		for(int i=1; i<=a; i++) {
			int b = scan.nextInt();
			int c = scan.nextInt();
			
			System.out.println("Case #" + i + ": " + (b+c));
		}
	}
}

 

18번 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int a = scan.nextInt();
		
		for(int i=1; i<=a; i++) {
			for(int j=1; j<=i; j++) {
				System.out.print("*");
			}
		System.out.println();
		}
	}
}

print와 println의 개념 확실히 알기!

 

19번 첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		int a = scan.nextInt();
		
		for(int i=1; i<=a; i++) {
			for(int j=a; j>0; j--) {
				if(j > i) {
					System.out.print(" ");
				}else {
					System.out.print("*");
				}
			}
			System.out.println("");
		}
	}
}

print와 println의 개념 확실히 알기!

 

20번 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 마지막 0 0을 입력하면 동작 중지

import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);
		
		while(true) {
			int a = scan.nextInt();
			int b = scan.nextInt();
			
			if(a == 0 && b ==0) break;
			System.out.println(a+b);
		}
	}
}