Home 코딩테스트 워밍업 - 코드업 기초 100제
Post
Cancel

코딩테스트 워밍업 - 코드업 기초 100제

백준 한동안 열심히 풀다가 방학 시작하고 뜸해져서 다시 풀기 시작!
두달 동안 자바를 거의 안써서, 다시 감 살릴겸 기초부터 복습해보려합니다.
코딩테스트 워밍업은 다들 코드업 기초 100제로 하던데 저도 해보겠습니다.

코딩테스트 언어는 Java 입니다.
👉 코드업100제 : https://codeup.kr/problemsetsol.php

기초(출력) - 1001 ~ 1008


1001

1
2
3
4
5
6
// printf()를 이용해 해당 단어를 출력하시오.
public class Main{
	public static void main(String[] args) {
		System.out.println("Hello");
	}
}

1002

1
2
3
4
5
6
// printf()를 공백을 포함한 문장을 출력한다.
public class Main{
	public static void main(String[] args) {
		System.out.println("Hello World");
	}
}

1003

1
2
3
4
5
6
// 이번에는 줄을 바꿔 출력하는 출력문을 연습해보자.
public class Main{
	public static void main(String[] args) {
		System.out.println("Hello\nWorld");
	}
}

1004

1
2
3
4
5
6
7
// 이번에는 작은 따옴표(single quotation mark)가 들어있는 특수한 형태의 출력문에 대한 연습을 해보자.

public class Main{
	public static void main(String[] args) {
		System.out.println("'Hello'");
	}
}

1005

1
2
3
4
5
6
7
8
// 이번에는 큰 따옴표(single quotation mark)가 
// 들어있는 특수한 형태의 출력문에 대한 연습을 해보자.

public class Main{
	public static void main(String[] args) {
		System.out.println("\"Hello World\"");
	}
}

1006

1
2
3
4
5
6
7
8
// 이번에는 특수문자 출력에 도전하자!!
//"!@#$%^&*()" (단, 큰따옴표도 함께 출력한다.)

public class Main{
	public static void main(String[] args) {
		System.out.println("\"!@#$%^&*()\"");
	}
}

1007

1
2
3
4
5
6
7
// 윈도우 운영체제의 파일 경로를 출력하는 연습을 해보자.

public class Main{
	public static void main(String[] args) {
		System.out.println("\"C:\\Download\\hello.cpp\"");
	}
}

1008

1
2
3
4
5
6
7
8
9
10
// 키보드로 입력할 수 없는 다음 모양을 출력해보자.
//(** 참고 : 운영체제의 문자 시스템에 따라 아래와 같은 모양이 출력되지 않을 수 있다.)

public class Main{
	public static void main(String[] args) {
		System.out.println("\u250C\u252C\u2510");
		System.out.println("\u251C\u253C\u2524");
		System.out.println("\u2514\u2534\u2518");
	}
}

기초(입출력) - 1010 ~ 1027


1010

1
2
3
4
5
6
7
8
9
// 정수형(int)으로 변수를 선언하고, 변수에 정수값을 저장한 후 변수에 저장되어 있는 값을 그대로 출력해보자
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		System.out.println(n);
                sc.close();
	}
}

1011

1
2
3
4
5
6
7
8
9
// 문자형(char)으로 변수를 하나 선언하고, 변수에 문자를 저장한 후 변수에 저장되어 있는 문자를 그대로 출력해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		char x = sc.next().charAt(0);
		System.out.println(x);;
                sc.close();
	}
}

1012

1
2
3
4
5
6
7
8
9
// 실수형(float)로 변수를 선언하고 그 변수에 실수값을 저장한 후 저장되어 있는 실수값을 출력해보자..
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		float x = sc.nextFloat();
		System.out.println(x);
                sc.close();
	}
}

1013

1
2
3
4
5
6
7
8
9
10
// 정수(int) 2개를 입력받아 그대로 출력해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a +" "+ b);
                sc.close();
	}
}

1014

1
2
3
4
5
6
7
8
9
10
// 2개의 문자(ASCII CODE)를 입력받아서 순서를 바꿔 출력해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		char x = sc.next().charAt(0);
		char y = sc.next().charAt(0);
		System.out.printf("%s %s",y,x);
                sc.close();
	}
}

1015

1
2
3
4
5
6
7
8
9
10
// 실수(float) 1개를 입력받아 저장한 후, 저장되어 있는 값을 소수점 셋 째 자리에서 반올림하여,
//소수점 이하 둘 째 자리까지 출력하시오.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		float x = sc.nextFloat();
		System.out.printf("%.2f",x);
                sc.close();
	}
}

1017

1
2
3
4
5
6
7
8
9
// int형 정수 1개를 입력받아 공백을 사이에 두고 3번 출력해보자..
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		System.out.printf("%d %d %d",a,a,a);
                sc.close();
	}
}

1018

1
2
3
4
5
6
7
8
9
10
// 어떤 형식에 맞추어 시간이 입력될 때, 그대로 출력하는 연습을 해보자. 
// 시:분 입력 , 시:분 출력
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] s = sc.next().split(":");
		System.out.printf("%s:%s",s[0],s[1]);
                sc.close();
	}
}

1019

1
2
3
4
5
6
7
8
9
10
// 년, 월, 일을 입력받아 지정된 형식으로 출력하는 연습을 해보자. 
//연, 월, 일이 ".(닷)"으로 구분되어 입력된다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] s = sc.next().split("\\.");
		System.out.printf("%s.%s.%s",s[0],s[1],s[2]);
                sc.close();
	}
}

1020

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 주민번호 앞의 6자리는 생년월일(yymmdd)이고, 
// 뒤 7자리는 성별, 지역, 오류검출코드이다.
// 주민번호를 입력받아 형태를 바꿔 출력해보자. 

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] s = sc.next().split("-");
        int a = Integer.parseInt(s[0]);
        int b = Integer.parseInt(s[1]);
		System.out.printf("%06d%07d",a,b);
                sc.close();
	}
}

1021

1
2
3
4
5
6
7
8
9
10
11
// 1개의 단어를 입력받아 그대로 출력해보자.
// 한 단어가 입력된다.(단, 단어의 길이는 50자 이하이다.)

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.next();
                System.out.printf("%s",s);
                sc.close();
	}
}

1022

1
2
3
4
5
6
7
8
9
10
// 공백 문자가 포함되어 있는 문장을 입력받고 그대로 출력하는 연습을 해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String s = sc.nextLine();
		System.out.printf("%s",s);
                sc.close();
	}
}

1023

1
2
3
4
5
6
7
8
9
10
11
// 실수 1개를 입력받아 정수 부분과 실수 부분으로 나누어 출력한다.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] s = sc.next().split("\\.");
		System.out.println(s[0]);
                System.out.println(s[1]);
                sc.close();
	}
}

1024

1
2
3
4
5
6
7
8
9
10
11
12
// 단어를 1개 입력받는다. 입력받은 단어(영어)의 각 문자를 한줄에 한 문자씩 분리해 출력한다.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		String[] s = sc.next().split("");
                for(int i=0;i<s.length;i++){
                    System.out.printf("'%s'\n",s[i]);
                }
                sc.close();
         }  
}

1025

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 다섯 자리의 정수 1개를 입력받아 각 자리별로 나누어 출력한다.

public class Main {
	public static void main(String[] args) {
	        Scanner sc = new Scanner(System.in);
	        String[] s = sc.next().split("");
                int a = 10000;
        
                for(int i=0;i<s.length;i++){
                        int num = Integer.parseInt(s[i]);
                    System.out.printf("[%d]\n",num*a);
                        a = a / 10;
                }
                sc.close();
    }
}

1026

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 입력되는 시:분:초 에서 분만 출력해보자.
// 콜론을 사이에 둔 형식으로 입력되어, h, m, s에 각각 정수값만 저장된다.

public class Main {
	public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String[] s = sc.next().split(":");
            int h = Integer.parseInt(s[0]);
            int m = Integer.parseInt(s[1]);
            int x = Integer.parseInt(s[2]);

            System.out.println(m);
            sc.close();
	}
}

1027

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 년월일을 출력하는 방법은 나라마다, 형식마다 조금씩 다르다.
// 년월일(yyyy.mm.dd)를 입력받아,일월년(dd-mm-yyyy)로 출력해보자.
//(단, 한 자리 일/월은 0을 붙여 두자리로,년도도 0을 붙여 네자리로 출력한다.) 
public class Main {
	public static void main(String[] args) {
            Scanner sc = new Scanner(System.in);
            String[] s = sc.next().split("\\.");
            int y = Integer.parseInt(s[0]);
            int m = Integer.parseInt(s[1]);
            int d = Integer.parseInt(s[2]);

            System.out.printf("%02d-%02d-%04d",d,m,y);
            sc.close();
	}
}

기초(데이터형) - 1028 ~ 1030


1028

1
2
3
4
5
6
7
8
9
10
// 정수 1개를 입력받아 그대로 출력해보자.
// (단, 입력되는 정수의 범위는 0 ~ 4,294,967,295 이다.)
public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
		long a = sc.nextLong(); // 자바는 따로 unsigned long이 존재하지 않음.
		System.out.println(a);
            sc.close();
	}
}

1029

1
2
3
4
5
6
7
8
9
10
11
// 실수 1개를 입력받아 그대로 출력해보자.
//(단, 입력되는 실수의 범위는 +- 1.7*10-308 ~ +- 1.7*10308 이다.)

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
		double d = sc.nextDouble();
		System.out.println(d);
        sc.close();
	}
}

1030

1
2
3
4
5
6
7
8
9
10
11
12
// 정수 1개를 입력받아 그대로 출력해보자.
//단, 입력되는 정수의 범위는
//-9,223,372,036,854,775,808 ~ +9,223,372,036,854,775,807 이다.

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        long a = sc.nextLong();
        System.out.println(a);
        sc.close();
	}
}

기초(출력변환) - 1031 ~ 1037


1031

1
2
3
4
5
6
7
8
9
10
// 10진수를 입력받아 8진수(octal)로 출력해보자.

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.printf("%o",n);
        sc.close();
	}
}

1032

1
2
3
4
5
6
7
8
9
10
// 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.printf("%x",n);
        sc.close();
	}
}

1033

1
2
3
4
5
6
7
8
9
10
11
12
13
// 10진수를 입력받아 16진수(hexadecimal)로 출력해보자.
// 참고
// %d(10진수 형태)로 입력받고
// %X로 출력하면 16진수(hexadecimal) 대문자로 출력된다.

public class Main {
	public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n = sc.nextInt();
        System.out.printf("%X",n);
        sc.close();
	}
}

1034

1
2
3
4
5
6
7
8
9
10
11
12
// 8진수로 입력된 정수 1개를 10진수로 바꾸어 출력해보자.

public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		String s = sc.next();
		// 문자열을 8진수로 변환
		int n = Integer.parseInt(s, 8);
		System.out.printf("%d", n);
		sc.close();
	}
}

1035

1
2
3
4
5
6
7
8
9
10
11
// 16진수로 입력된 정수 1개를 8진수로 바꾸어 출력해보자.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		String s = sc.next();
		// 문자열을 8진수로 변환
		int n = Integer.parseInt(s, 16);
		System.out.printf("%o", n);
		sc.close();
	}
}

1036

1
2
3
4
5
6
7
8
9
10
// 영문자 1개를 입력받아 아스키 코드표의 10진수 값으로 출력해보자.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		char c = sc.next().charAt(0);
		int n = (int) c;
		System.out.printf("%d", n);
		sc.close();
	}
}

1037

1
2
3
4
5
6
7
8
9
10
11
// 10진 정수 1개를 입력받아 아스키 문자로 출력해보자.
// 단, 0 ~ 255 범위의 정수만 입력된다.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		char c = (char) n;
		System.out.printf("%c", c);
		sc.close();
	}
}

기초(산술연산) - 1038 ~ 1046


1038

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.
// (단, 입력되는 정수는 -1073741824 ~ 1073741824 이다.)
public class Main {
	public static void main(String[] args) {
		//int의 표현 범위 
		//-2,147,483,648 ~ 2,147,483,647

        Scanner sc = new Scanner(System.in);
		long a = sc.nextLong();
		long b = sc.nextLong();
		System.out.println(a + b);
		sc.close();
	}
}

1039

1
2
3
4
5
6
7
8
9
10
11
12
13
// 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.
// 단, 입력되는 정수는 -2147483648 ~ +2147483648 이다.
public class Main {
	public static void main(String[] args) {
		// long의 표현 범위 
		//-9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
        	Scanner sc = new Scanner(System.in);
		long a = sc.nextLong();
		long b = sc.nextLong();
		System.out.println(a + b);
		sc.close();
	}
}

1040

1
2
3
4
5
6
7
8
9
10
// 정수 2개를 입력받아 합을 출력하는 프로그램을 작성해보자.
// 단, 입력되는 정수는 -2147483647 ~ +2147483647 이다.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		System.out.println(-a);
		sc.close();
	}
}

1041

1
2
3
4
5
6
7
8
9
10
11
// 영문자 1개를 입력받아 그 다음 문자를 출력해보자.
// 영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		char c = sc.next().charAt(0);
		int n = (int) c;
		System.out.printf("%c", n + 1);
		sc.close();
	}
}

1042

1
2
3
4
5
6
7
8
9
10
11
// 정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자.
// 단, -2147483648 <= a <= b <= +2147483647, b는 0이 아니다.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a / b);
		sc.close();
	}
}

1043

1
2
3
4
5
6
7
8
9
10
11
//정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자.
// 단, 0 <= a, b <= +2147483647, b는 0이 아니다.
public class Main {
	public static void main(String[] args) {
       		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a % b);
		sc.close();
	}
}

1044

1
2
3
4
5
6
7
8
9
10
11
12
// 정수를 1개 입력받아 1만큼 더해 출력해보자.
// 단, -2147483648 ~ +2147483647 의 범위로 입력된다.
// 계산되고 난 후의 값의 범위(데이터형)에 주의한다.
public class Main {
	public static void main(String[] args) {
        	Scanner sc = new Scanner(System.in);
		long a = sc.nextInt();
		long b = a + 1;
		System.out.printf("%d", b);
		sc.close();
	}
}

1045

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자.
// 단 0 <= a, b <= 2147483647, b는 0이 아니다.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long a = sc.nextInt();
		long b = sc.nextInt();
		System.out.println(a + b);
		System.out.println(a - b);
		System.out.println(a * b);
		System.out.println(a / b);
		System.out.println(a % b);
		double A = (double) a;
		System.out.printf("%.2f", A / b);
		sc.close();
	}
}

1046

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 정수 3개를 입력받아 합과 평균을 출력해보자.
// 단, -2147483648 ~ +2147483647.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		long a = sc.nextInt();
		long b = sc.nextInt();
		long c = sc.nextInt();
		long sum = a + b + c;
		System.out.println(sum);
		System.out.printf("%.1f", (double) sum / 3);
		sc.close();
	}
}

기초(비트시프트연산) - 1047 ~ 1048


1047

1
2
3
4
5
6
7
8
9
10
11
12
// 정수 1개를 입력받아 2배 곱해 출력해보자.
//참고
//*2 의 값을 출력해도 되지만, 정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용한다.

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

1048

1
2
3
4
5
6
7
8
9
10
11
12
// 정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자.
// 0 <= a <= 10, 0 <= b <= 10

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a << b);
		sc.close();
	}
}

기초(비교 연산) - 1049 ~ 1052


1049

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 정수(a, b)를 입력받아
// a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a > b)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

1050

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 정수(a, b)를 입력받아
// a와 b가 같으면 1을, 같지 않으면 0을 출력하는 프로그램을 작성해보자

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a == b)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

1051

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 정수(a, b)를 입력받아
// b가 a보다 크거나 같으면 1을, 그렇지 않으면 0을 출력하는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a <= b)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

1052

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 정수(a, b)를 입력받아
// a와 b가 서로 다르면 1을, 그렇지 않으면 0을 출력하는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a != b)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

기초(논리 연산) - 1053 ~ 1058


1053

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 1(true, 참) 또는 0(false, 거짓) 이 입력되었을 때
// 반대로 출력하는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		if (num == 1)
			System.out.println(0);
		else
			System.out.println(1);
		sc.close();
	}
}

1054

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// 두 개의 참(1) 또는 거짓(0)이 입력될 때,
// 모두 참일 때에만 참을 출력하는 프로그램을 작성해보자.


public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a == 1 && b == 1)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

1055

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 개의 참(1) 또는 거짓(0)이 입력될 때,
// 하나라도 참이면 참을 출력하는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a == 1 || b == 1)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

1056

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 개의 참(1) 또는 거짓(0)이 입력될 때,
// 참/거짓이 서로 다를 때에만 참을 출력하는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if ((a == 1 && b==1) || (a==0 && b == 0))
			System.out.println(0);
		else
			System.out.println(1);
		sc.close();
	}
}

1057

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 개의 참(1) 또는 거짓(0)이 입력될 때,
// 참/거짓이 서로 같을 때에만 참이 계산되는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if ((a == 1 && b==1) || (a==0 && b == 0))
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

1058

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 두 개의 참(1) 또는 거짓(0)이 입력될 때,
// 모두 거짓일 때에만 참이 계산되는 프로그램을 작성해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		if (a == 0 && b==0)
			System.out.println(1);
		else
			System.out.println(0);
		sc.close();
	}
}

기초(비트단위논리연산) - 1059 ~ 1062


1059

1
2
3
4
5
6
7
8
9
10
11
// 입력 된 정수를 비트단위로 참/거짓을 바꾼 후 정수로 출력해보자.
// 비트단위(bitwise)연산자 ~ 를 붙이면 된다.(~ : tilde, 틸드라고 읽는다.)

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		System.out.println(~a);
		sc.close();
	}
}

1060

1
2
3
4
5
6
7
8
9
10
11
12
// 입력된 정수 두 개를 비트단위로 and 연산한 후 그 결과를 정수로 출력해보자.
// 비트단위(bitwise)연산자 &를 사용하면 된다.(and, ampersand, 앰퍼센드라고 읽는다.)

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a & b);
		sc.close();
	}
}

1061

1
2
3
4
5
6
7
8
9
10
11
// 입력된 정수 두 개를 비트단위로 or 연산한 후 그 결과를 정수로 출력해보자.
// 비트단위(bitwise) 연산자 |(or, vertical bar, 버티컬바)를 사용하면 된다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a | b);
		sc.close();
	}
}

1062

1
2
3
4
5
6
7
8
9
10
11
// 입력된 정수 두 개를 비트단위로 xor 연산한 후 그 결과를 정수로 출력해보자.
// 비트단위(bitwise) 연산자 ^(xor, circumflex/caret, 서컴플렉스/카릿)를 사용하면 된다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a ^ b);
		sc.close();
	}
}

기초(삼항연산) - 1063 ~ 1064


1063

1
2
3
4
5
6
7
8
9
10
11
// 입력된 두 정수 a, b 중 큰 값을 출력하는 프로그램을 작성해보자.
// 단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		System.out.println(a > b ? a : b);
		sc.close();
	}
}

1064

1
2
3
4
5
6
7
8
9
10
11
12
// 입력된 세 정수 a, b, c 중 가장 작은 값을 출력하는 프로그램을 작성해보자.
// 단, 조건문을 사용하지 않고 3항 연산자 ? 를 사용한다.
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();
		System.out.println((a < b ? a : b) < c ? (a < b ? a : b) : c);
		sc.close();
	}
}

기초(조건/선택실행구조) - 1065 ~ 1070


1065

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 세 정수 a, b, c가 입력되었을 때, 짝수만 출력해보자.
public class Main {
	public static void even(int num) { // 함수 정의
		if (num % 2 == 0)
			System.out.println(num);
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		even(a);
		even(b);
		even(c);
		sc.close();
	}
}

1066

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 세 정수 a, b, c가 입력되었을 때, 짝(even)/홀(odd)을 출력해보자.
public class Main {
	public static void oddeven(int num) { // 함수 정의
		if (num % 2 == 0)
			System.out.println("even");
		else
			System.out.println("odd");
	}
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		oddeven(a);
		oddeven(b);
		oddeven(c);
		sc.close();
	}
}

1067

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
// 정수 1개가 입력되었을 때, 음(minus)/양(plus)과 짝(even)/홀(odd)을 출력해보자.
public class Main {
	public static void oddeven(int num) { // 함수 정의
		if (num % 2 == 0)
			System.out.println("even");
		else
			System.out.println("odd");
	}

	public static void plusminus(int num) { // 함수 정의
		if (num < 0)
			System.out.println("minus");
		else
			System.out.println("plus");
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		plusminus(a);
		oddeven(a);
		sc.close();
	}
}

1068

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 점수(정수, 0 ~ 100)를 입력받아 평가를 출력해보자.
public class Main {
	public static void score(int num) { // 함수 정의
		if (num >= 90) {
			System.out.println("A");
		} else if (num >= 70) {
			System.out.println("B");
		} else if (num >= 40) {
			System.out.println("C");
		} else {
			System.out.println("D");
		}
	}

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		score(num);
		sc.close();
	}

}

1069

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
// 평가를 문자(A, B, C, D, ...)로 입력받아 내용을 다르게 출력해보자.
// 평가 : 내용
// A : best!!!
// B : good!!
// C : run!
// D : slowly~
// 나머지 문자들 : what?
public class Main {
	public static void score(char c) { // 함수 정의
		switch (c) {
			case 'A':
				System.out.println("best!!!");
				break;
			case 'B':
				System.out.println("good!!");
				break;
			case 'C':
				System.out.println("run!");
				break;
			case 'D':
				System.out.println("slowly~");
				break;
			default:
				System.out.println("what?");
				break;
		}
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		char c = sc.next().charAt(0);
		score(c);
		sc.close();
	}
}

1070

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
// 월이 입력될 때 계절 이름이 출력되도록 해보자.
// 월 : 계절 이름
// 12, 1, 2 : winter
// 3, 4, 5 : spring
// 6, 7, 8 : summer
// 9, 10, 11 : fall
public class Main {
	public static void season(int mon) { // 함수 정의
		switch (mon) {
			case 12:
			case 1:
			case 2:
				System.out.println("winter");
				break;
			case 3:
			case 4:
			case 5:
				System.out.println("spring");
				break;
			case 6:
			case 7:
			case 8:
				System.out.println("summer");
				break;
			case 9:
			case 10:
			case 11:
				System.out.println("fall");
				break;

			default:
				System.out.println("wrong!");
				break;
			}
	}

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int mon = sc.nextInt();
		season(mon);
		sc.close();
	}
}

기초(반복실행구조) - 1071 ~ 1077


1071

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 정수가 순서대로 입력된다.
// -2147483648 ~ +2147483647, 단 개수는 알 수 없다.
// 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
// while( ), for( ), do~while( ) 등의 반복문을 사용할 수 없다. 
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		while (num != 0) { // 자바는 goto문이 없음
			System.out.println(num);
			num = sc.nextInt();
		}
		sc.close();
	}
}

1072

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// n개의 정수가 순서대로 입력된다.
// -2147483648 ~ +2147483647, 단 n의 최대 개수는 알 수 없다.

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

1073

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 정수가 순서대로 입력된다.
// -2147483648 ~ +2147483647, 단 개수는 알 수 없다.
// 0이 아니면 입력된 정수를 출력하고, 0이 입력되면 출력을 중단해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		while (num != 0) {
			System.out.println(num);
			num = sc.nextInt();
		}
		sc.close();
	}
}

1074

1
2
3
4
5
6
7
8
9
10
11
12
// 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
// 1씩 줄이면서 한 줄에 하나씩 1이 될 때까지 출력한다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		for (int i = num; i >= 1; i--) {
			System.out.println(i);
		}
		sc.close();
	}
}

1075

1
2
3
4
5
6
7
8
9
10
11
12
13
// 정수(1 ~ 100) 1개가 입력되었을 때 카운트다운을 출력해보자.
// 1씩 줄이면서 한 줄에 하나씩 0이 될 때까지 출력한다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		while (num != 0) {
			num--;
			System.out.println(num);
		}
		sc.close();
	}
}

1076

1
2
3
4
5
6
7
8
9
10
11
12
// 영문자(a ~ z) 1개가 입력되었을 때 그 문자까지의 알파벳을 순서대로 출력해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		char c = sc.next().charAt(0);
		int loc = (int) c;
		for (int i = 97; i <= loc; i++) {
			System.out.printf("%c ", i);
		}
		sc.close();
	}
}

1077

1
2
3
4
5
6
7
8
9
10
11
// 정수(0 ~ 100) 1개를 입력받아 0부터 그 수까지 순서대로 출력해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		for (int i = 0; i <= num; i++) {
			System.out.println(i);
		}
		sc.close();
	}
}

기초(종합) - 1078 ~ 1092


1078

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 정수(1 ~ 100) 1개를 입력받아 1부터 그 수까지 짝수의 합을 구해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int sum = 0;
		int num = sc.nextInt();
		for (int i = 1; i <= num; i++) {
			if (i % 2 == 0) {
				sum += i;
			}
		}
		System.out.println(sum);
		sc.close();
	}
}

1079

1
2
3
4
5
6
7
8
9
10
11
12
// 'q'가 입력될 때까지 입력한 문자를 계속 출력하는 프로그램을 작성해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		char c = sc.next().charAt(0);
		while (c != 'q') {
			System.out.println(c);
			c = sc.next().charAt(0);
		}
		sc.close();
	}
}

1080

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 1, 2, 3 ... 을 계속 더해 나갈 때,
// 그 합이 입력한 정수(0 ~ 1000)보다 같거나 작을 때까지 계속 더하는 프로그램을 작성해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int sum = 0;
		int last = 0;
		while (true) {
			last++;
			sum += last;
			if (sum >= num) {
				System.out.println(last);
				break;
			}
		}
		sc.close();
	}
}

1081

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// 1부터 n까지, 1부터 m까지 숫자가 적힌
// 서로 다른 주사위 2개를 던졌을 때 나올 수 있는 모든 경우를 출력해보자.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int a = sc.nextInt();
		int b = sc.nextInt();
		for (int i = 1; i <= a; i++) {
			for (int j = 1; j <= b; j++) {
				System.out.printf("%d %d\n", i, j);
			}
		}
		sc.close();
	}
}

1082

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// 16진수(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F)를 배운
// 영일(01)이는 16진수끼리 곱하는 16진수 구구단?에 대해서 궁금해졌다.
// 입력된 16진수에 1~F까지 순서대로 곱한, 16진수 구구단을 줄을 바꿔 출력한다.
// 계산 결과도 16진수로 출력해야 한다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt(16);
		for (int i = 1; i < 16; i++) {
			System.out.printf("%X*%X=%X\n", n, i, n * i);
		}
		sc.close();
	}
}

1083

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 3 6 9 게임을 하던 영일이는 3 6 9 게임에서 잦은 실수로 계속해서 벌칙을 받게 되었다.
// 3 6 9 게임의 왕이 되기 위한 마스터 프로그램을 작성해 보자.
// 1 부터 그 수까지 순서대로 공백을 두고 수를 출력하는데,
// 3 또는 6 또는 9인 경우 그 수 대신 영문 대문자 X 를 출력한다.
// 10 보다 작은 정수 1개가 입력된다.(1 ~ 9)

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		for (int i = 1; i < n + 1; i++) {
			if (i % 3 == 0) {
				System.out.printf("X ");
			} else {
				System.out.printf("%d ", i);
			}
		}
		sc.close();
	}
}

1084

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

// 주어진 rgb 빛들을 다르게 섞어 만들 수 있는 모든 경우의 조합(r g b)과
// 총 가짓 수를 계산해보자.
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();
		int count = 0;

		for (int i = 0; i < a; i++) {
			for (int j = 0; j < b; j++) {
				for (int k = 0; k < c; k++) {
					System.out.printf("%d %d %d\n", i, j, k);
					count++;
				}
			}
		}
		System.out.print(count);
		sc.close();
	}
}

1085

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
// 1초 동안 마이크로 소리강약을 체크하는 수를 h (헤르쯔, Hz 는 1초에 몇 번? 체크하는가를 의미한다.)
// 한 번 체크한 결과를 저장하는 비트 b (2비트를 사용하면 0 또는 1 두 가지, 16비트를 사용하면 65536가지..)
// 좌우 등 소리를 저장할 트랙 개수인 채널 c (모노는 1개, 스테레오는 2개의 트랙으로 저장함을 의미한다.)
// 녹음할 시간 s가 주어질 때, 필요한 저장 용량을 계산하는 프로그램을 작성해보자.
// 실제로 일반적인 CD 음질(44.1KHz, 16bit, 스테레오)로 1초 동안 저장하려면 44100 * 16 * 2 * 1 bit의 저장공간이 필요하다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int h = sc.nextInt();
		int b = sc.nextInt();
		int c = sc.nextInt();
		int s = sc.nextInt();

		int space = h * b * c * s;
		double megabyte = 8 * 1024 * 1024;
		System.out.printf("%.1f MB", space / megabit);
		sc.close();
	}
}

1086

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 이미지의 가로 해상도 w, 세로 해상도 h, 한 픽셀을 저장하기 위한 비트 b 가 주어질 때,
// 압축하지 않고 저장하기 위해 필요한 저장 용량을 계산하는 프로그램을 작성해 보자.
// 예를 들어 일반적인 1024 * 768 사이즈(해상도)의 각점에 대해
// 24비트(rgb 각각 8비트씩 3개)로 저장하려면 1024 * 768 * 24 bit의 저장 용량이 필요하다
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int w = sc.nextInt();
		int h = sc.nextInt();
		int b = sc.nextInt();

		int space = w * h * b;
		double megabyte = 8 * 1024 * 1024;
		System.out.printf("%.2f MB", space / megabyte);
		sc.close();
	}
}

1087

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 1, 2, 3 ... 을 순서대로 계속 더해나갈 때, 그 합이 입력한 정수보다 작을 동안만 계속 더하는 프로그램을 작성해보자.
// 이번에는 그 때의 합을 출력해야 한다.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int i = 0;
		int sum = 0;

		while (true) {
			i++;
			sum += i;
			if (sum >= num) {
				System.out.println(sum);
				break;
			}
		}
		sc.close();
	}
}

1088

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// 1부터 입력한 정수까지 1씩 증가시켜 출력하는 프로그램을 작성하되,
// 3의 배수인 경우는 출력하지 않도록 만들어보자

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		for (int i = 1; i < num + 1; i++) {
			if (i % 3 == 0) {
				continue;
			} else {
				System.out.printf("%d ", i);
			}
		}
		sc.close();
	}
}

1089

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때
// n번째 수를 출력하는 프로그램을 만들어보자.

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

		for (int i = 1; i < n; i++) {
			a += d;
		}

		System.out.println(a);
		sc.close();
	}
}

1090

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// 시작 값(a), 등비(r), 몇 번째인지를 나타내는 정수(n)가 입력될 때
// n번째 수를 출력하는 프로그램을 만들어보자.

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

		for (int i = 1; i < n; i++) {
			a *= r;
		}
		System.out.println(a);

		sc.close();
	}
}

1091

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
// 시작 값(a), 등차(d), 몇 번째인지를 나타내는 정수(n)가 입력될 때
// n번째 수를 출력하는 프로그램을 만들어보자.

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

		for (int i = 1;; i++) {
			if (i == n) {
				System.out.println(a);
				break;
			}
			a += d;
		}

		sc.close();
	}
}

1092

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
// 자! 여기서...잠깐..
// 같은 날 동시에 가입한 3명의 사람들이 온라인 채점시스템에 들어와 문제를 푸는 날짜가
// 매우 규칙적이라고 할 때, 다시 모두 함께 문제를 풀게 되는 그날은 언제일까?

// 예를 들어 3명이 같은 날 가입/등업하고, 각각 3일마다, 7일마다, 9일마다
// 한 번씩 들어온다면, 처음 가입하고 63일 만에 다시 3명이 함께 문제를 풀게 된다

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();

		int day = 1;
		while (day % a != 0 || day % b != 0 || day % c != 0) {
			day++;
		}
		System.out.println(day);
		sc.close();
	}
}

기초(1차원배열) - 1093 ~ 1095


1093

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 출석 번호를 n번 무작위로 불렀을 때, 각 번호(1 ~ 23)가 불린 횟수를 각각 출력해보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr;
		arr = new int[23];

		for (int i = 0; i < n; i++) {
			int num = sc.nextInt();
			arr[num - 1] += 1; // 1번부터 번호가 불린 횟수를 공백을 기준으로 출력
		}

		for (int i : arr) {
			System.out.printf("%d ", i);
		}
		sc.close();
	}
}

1094

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
// 출석 번호를 n번 무작위로 불렀을 때, 부른 번호를 거꾸로 출력해 보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr;
		arr = new int[n];

		for (int i = n - 1; i >= 0; i--) {
			int num = sc.nextInt();
			arr[i] = num; 
		}

		for (int i : arr) {
			System.out.printf("%d ", i);
		}
		sc.close();
	}
}

1095

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
// 출석 번호를 n번 무작위로 불렀을 때, 가장 빠른 번호를 출력해 보자.
// 출석을 부른 번호 중에 가장 빠른 번호를 1개만 출력한다.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int[] arr;
		arr = new int[n];
		int min = 0;

		for (int i = 0; i < n; i++) {
			int num = sc.nextInt();
			arr[i] = num;
		}

		min = arr[0];

		for (int i : arr) {
			if (i < min) {
				min = i;
			}
		}
		System.out.printf("%d ", min);

		sc.close();
	}
}

기초(1차원배열) - 1096 ~ 1099


1096

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
// 바둑판(19 * 19)에 n개의 흰 돌을 놓는다고 할 때,
// n개의 흰 돌이 놓인 위치를 출력하는 프로그램을 작성해보자.
// n은 10이하의 자연수이고 x, y 좌표는 1 ~ 19 까지이며, 같은 좌표는 입력되지 않는다.
public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int arr[][];
		arr = new int[19][19]; // 바둑판 배열
		for (int i = 0; i < n; i++) {
			int x = sc.nextInt();
			int y = sc.nextInt();
			arr[x][y] = 1;
		}

		for (int i = 1; i < arr.length; i++) {
			for (int j = 1; j < arr[0].length; j++) {
				System.out.printf("%d ", arr[i][j]);
			}
			System.out.println();
		}
		sc.close();

	}
}

1097

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
50
51
// 바둑판(19 * 19)에 흰 돌(1) 또는 검정 돌(0)이 모두 꽉 채워져 놓여있을 때,
// n개의 좌표를 입력받아 십(+)자 뒤집기한 결과를 출력하는 프로그램을 작성해보자.
// 십자 뒤집기 횟수(n)가 입력된다.
// 십자 뒤집기 좌표가 횟수(n) 만큼 입력된다. 단, n은 10이하의 자연수이다.


public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int arr[][];
		arr = new int[20][20]; // 바둑판

		for (int i = 1; i <= 19; i++) {
			for (int j = 1; j <= 19; j++) {
				arr[i][j] = sc.nextInt(); // 배열 정보 입력받기
			}
		}

		int num = sc.nextInt(); // 뒤집기 횟수

		for (int i = 0; i < num; i++) {
			int x = sc.nextInt();
			int y = sc.nextInt(); // 뒤집는 좌표 기준으로 가로 세로줄 전부 뒤집기

			for (int j = 1; j <= 19; j++) { // 가로줄 뒤집기
				if (arr[x][j] == 1) {
					arr[x][j] = 0;
				} else {
					arr[x][j] = 1;
				}
			}

			for (int k = 1; k <= 19; k++) { // 세로줄 뒤집기
				if (arr[k][y] == 1) {
					arr[k][y] = 0;
				} else {
					arr[k][y] = 1;
				}
			}
		}

		for (int i = 1; i < arr.length; i++) { // 뒤집은 바둑판 출력
			for (int j = 1; j < arr[0].length; j++) {
				System.out.printf("%d ", arr[i][j]);
			}
			System.out.println();
		}

		sc.close();
	}
}

1098

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
// 격자판의 세로(h), 가로(w), 막대의 개수(n), 각 막대의 길이(l),
// 막대를 놓는 방향(d:가로는 0, 세로는 1)과
// 막대를 놓는 막대의 가장 왼쪽 또는 위쪽의 위치(x, y)가 주어질 때,
// 격자판을 채운 막대의 모양을 출력하는 프로그램을 만들어보자.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int w = sc.nextInt();
		int h = sc.nextInt();
		int n = sc.nextInt(); // 막대 개수

		int arr[][] = new int[w + 1][h + 1]; // 좌표가 (1,1) 부터 시작함

		for (int i = 0; i < n; i++) {
			int l = sc.nextInt();
			int d = sc.nextInt(); // 1이면 세로 0이면 가로
			int x = sc.nextInt();
			int y = sc.nextInt();

			if (d == 1) {
				for (int j = 0; j < l; j++) {
					arr[x + j][y] = 1;
				}
			}

			else {
				for (int j = 0; j < l; j++) {
					arr[x][y + j] = 1;
				}
			}

		}

		for (int i = 1; i <= w; i++) { 
			for (int j = 1; j <= h; j++) {
				System.out.printf("%d ", arr[i][j]);
			}
			System.out.println();
		}

		sc.close();
	}
}

1099

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
50
51
52
// 미로 상자에 넣은 개미는 먹이를 찾았거나, 더 이상 움직일 수 없을 때까지
// 오른쪽 또는 아래쪽으로만 움직였다.
// 미로 상자의 구조가 0(갈 수 있는 곳), 1(벽 또는 장애물)로 주어지고,
// 먹이가 2로 주어질 때, 성실한 개미의 이동 경로를 예상해보자.
// 단, 맨 아래의 가장 오른쪽에 도착한 경우, 더 이상 움직일 수 없는 경우, 먹이를 찾은 경우에는 더이상 이동하지 않고 그 곳에 머무른다고 가정한다.
// 10*10 크기의 미로 상자의 구조와 먹이의 위치가 입력된다.

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int arr[][] = new int[11][11];

		for (int i = 1; i < 11; i++) { // 미로 입력
			for (int j = 1; j < 11; j++) {
				arr[i][j] = sc.nextInt();
			}
		}

		int x = 2;
		int y = 2;
		
		loop:
		for (int i = x; i < 11; i++) { // 미로 이동
			for (int j = y; j < 11; j++) {
				if (arr[i][j] == 0) {
					arr[i][j] = 9; // 오른쪽으로 이동
				} else if (arr[i][j] == 1) { // 벽이면
					x++; // 아래로 이동
					y = j - 1; // 벽기준 왼쪽으로 돌아가기
					break;
				} else if (arr[i][j] == 2) {
					arr[i][j] = 9;
					break loop;
				}
				else{
					break loop;
				}
			}
		}

		for (int i = 1; i < 11; i++) {// 이동경로 출렿가ㅣ
			for (int j = 1; j < 11; j++) {
				System.out.printf("%d ", arr[i][j]);
			}
			System.out.println();
		}

		sc.close();
	
	}
}

This post is licensed under CC BY 4.0 by the author.