본문 바로가기

JAVA

< (JAVA) 코드업 1041 ~ 1050 >

 

 

 

 

안녕하세요 오늘은 JAVA를 이용해 코드업 문제 1041번 ~ 1050 까지를 풀어볼 거예요 :)

 

 

 

 

 

 

 

 

 

 

1041 : [기초-산술연산] 문자 1개 입력받아 다음 문자 출력하기

 

< 문제 설명 >

- 영문자 1개를 입력받아 그 다음 문자를 출력해보자. 영문자 'A'의 다음 문자는 'B'이고, 영문자 '0'의 다음 문자는 '1'이다.

 < 참고 >
- 숫자는 수를 표현하는 문자로서 '0' 은 문자 그 자체를 의미하고, 0은 값을 의미한다.

< 힌트 >
- 아스키문자표에서 'A'는 10진수 65로 저장되고 'B'는 10진수 66으로 저장된다.


- 따라서 문자도 값으로 덧셈을 할 수 있다.

 

 

 

- 입력 : 영문자 1개가 입력된다.

ex ) a

- 출력 : 다음 문자를 출력한다.

ex ) b

 

package _CodeUp_;

import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);

        char a = sc.nextLine().charAt(0);

        System.out.println((char) (a+1));

    }
}

 

완성된 코드

 

 

 

 

 

 

 

 

 

 

 

1042 : [기초-산술연산] 정수 2개 입력받아 나눈 몫 출력하기

 

< 문제 설명 >

- 정수 2개(a, b) 를 입력받아 a를 b로 나눈 몫을 출력해보자. 단, -2147483648 <= a <= b <= +2147483647, b는 0이 아니다.

 < 참고 >
- C언어에서 정수/정수 연산의 결과는 정수(몫)로 계산된다.


- 실수/정수, 정수/실수, (float)정수/정수, 정수/(float)정수 등의 연산 결과는 실수 값으로 계산된다.

- (float)(정수/정수)는 정수/정수의 결과인 정수 값을 실수형(float)로 바꾸는 것으로, 계산 결과인 정수 값이 실수 형태로 변환되는 것이니 주의해야 한다.

- 정수/실수 계산결과가 자동으로 실수형으로 바뀌는 것을 묵시적 (데이터)형변환이라고 하고, 어떤 값이나 결과의 데이터형을 강제로 바꾸는 것을 명시적 (데이터)형변환이라고 한다.

int a;
scanf("%d", &a);
printf("%f", (float)a);

와 같이 실행하면, 정수로 저장되어 있는 값을 실수형(float)으로 명시적으로 변환하여 출력한다.

 

 

 

- 입력 : 정수 2개(a, b)가 공백을 두고 입력된다. 단, -2147483648 <= a <= b <= +2147483647

ex ) 1 3

- 출력 : a를 b로 나눈 몫을 출력한다.

ex ) 0

 

package _CodeUp_;

import java.util.Scanner;

public class code2 {
    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);

    }
}

 

완성된 코드

 

 

 

 

 

 

 

 

 

 

 

1043 : [기초-산술연산] 정수 2개 입력받아 나눈 나머지 출력하기

 

< 문제 설명 >

- 정수 2개(a, b) 를 입력받아 a를 b로 나눈 나머지를 출력해보자. 단, 0 <= a, b <= +2147483647, b는 0이 아니다.

 < 참고 >
- C언어에서 정수%정수 연산의 결과는 나눈 나머지로 계산된다.

- % 연산자(modulus, mod 연산) 수학자 가우스가 생각해낸 연산으로, 어떤 정수를 다른 정수로 나누고 난 후 남는 나머지를 계산하는 연산이다.

- 단, 음(-)이 아닌 정수에 대해서만 연산된다.

 

 

- 입력 : 정수 2개(a, b)가 공백을 두고 입력된다. 단, 0 <= a, b <= +2147483647, b는 0이 아니다.

ex ) 10 3

- 출력 : a 를 b로 나눈 나머지를 출력한다.

ex ) 1

 

package _CodeUp_;

import java.util.Scanner;

public class code2 {
    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);

    }
}

 

완성된 코드

 

 

 

 

 

 

 

 

 

 

1044 : [기초-산술연산] 정수 1개 입력받아 1 더해 출력하기

 

< 문제 설명 >

- 정수를 1개 입력받아 1만큼 더해 출력해보자. 단, -2147483648 ~ +2147483647 의 범위로 입력된다.

* 주의 : 계산되고 난 후의 값의 범위(데이터형)에 주의한다. *

 < 참고 >
- 어떤 변수(a)에 값을 저장한 후 a+1 의 값을 출력할 수도 있고, ++a 연산을 한 후에 출력할 수도 있다.

- ++a, --a, a++, a-- 와 같이 어떤 변수의 앞이나 뒤에 붙여 변수에 저장되어있는 값을 1만큼 더하거나 빼주는 연산자를 증감연산자라고 한다.

- 증감연산자를 변수 앞에 붙이면 그 변수를 사용하기 전에 증감을 먼저 수행하고, 증감연산자를 변수 뒤에 붙이면 일단 변수에 저장되어있는 값을 먼저 사용하고 난 후 나중에 증감을 수행한다.

 

 

- 입력 : 정수 1개가 입력된다. 단, -2147483648 ~ +2147483647 의 범위로 입력된다.
ex ) 2147483647

- 출력 : 입력된 정수에 1을 더해 출력한다.

ex ) 2147483648

 

package _CodeUp_;

import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);

        long a = sc.nextLong();
        System.out.println(a + 1);
    }
}

 

완성된 코드

 

 

 

 

 

 

 

 

 

1045 : [기초-산술연산] 정수 2개 입력받아 자동 계산하기

 

< 문제 설명 >

-  정수 2개(a, b)를 입력받아 합, 차, 곱, 몫, 나머지, 나눈 값을 자동으로 계산해보자. 단 0 <= a, b <= 2147483647, b는 0이 아니다.

 

- 입력 : 정수 2개가 공백을 두고 입력된다.
ex ) 10 3

- 출력 : 첫 줄에 합, 둘째 줄에 차, 셋째 줄에 곱, 넷째 줄에 몫, 다섯째 줄에 나머지, 여섯째 줄에 나눈 값을 순서대로 출력한다.
(실수, 소수점 이하 셋째 자리에서 반올림해 둘째 자리까지 출력)

ex ) 13

       7

       30

       3

       1

       3.33

 

package _CodeUp_;

import java.util.Scanner;

public class code2 {
    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);
        System.out.println(a - b);
        System.out.println(a * b);
        System.out.println(a / b);
        System.out.println(a % b);
        System.out.println((String.format("%.2f", (float)a / b)) );
    }
}

 

완성된 코드

 

 

 

 

 

 

 

 

1046 : [기초-산술연산] 정수 3개 입력받아 합과 평균 출력하기

 

< 문제 설명 >

-  정수 3개를 입력받아 합과 평균을 출력해보자. 단, -2147483648 ~ +2147483647


 

- 입력 : 정수 3개가 공백을 두고 입력된다. 단, -2147483648 ~ +2147483647
ex ) 1 2 3

- 출력 : 합과 평균을 줄을 바꿔 출력한다. 평균은 소수점 이하 둘째 자리에서 반올림해서 소수점 이하 첫째 자리까지 출력한다.

ex ) 6

       2.0

 

package _CodeUp_;

import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();
        int b = sc.nextInt();
        int c = sc.nextInt();

        float n = (float)(a+b+c)/3;

        System.out.println(a + b + c);
        System.out.println(String.format("%.1f", n));

    }
}

 

완성된 코드

 

 

 

 

 

 

 

1047 : [기초-비트시프트연산] 정수 1개 입력받아 2배 곱해 출력하기

 

< 문제 설명 >

-  정수 1개를 입력받아 2배 곱해 출력해보자.

< 참고 >
- *2 의 값을 출력해도 되지만, 정수를 2배로 곱하거나 나누어 계산해 주는 비트단위시프트연산자 <<, >>를 이용한다.

- 2진수 형태로 저장되어 있는 값들을 왼쪽(<<)이나 오른쪽(>>)으로 지정한 비트 수만큼 밀어주면 2배씩 늘어나거나 반으로 줄어드는데, 왼쪽 비트시프트(<<)가 될 때에는 오른쪽에 0이 주어진 개수만큼 추가되고, 오른쪽 비트시프트(>>)가 될 때에는 왼쪽에 0(0 또는 양의 정수인 경우)이나 1(음의 정수인 경우)이 개수만큼 추가된다.

- 범위(32비트)를 넘어서 이동되는 비트는 삭제된다.

 

< 예시 >
int a=10;
printf("%d", a<<1); //10을 2배 한 값인 20 이 출력된다.
printf("%d", a>>1); //10을 반으로 나눈 값인 5 가 출력된다.
printf("%d", a<<2); //10을 4배 한 값인 40 이 출력된다.
printf("%d", a>>2); //10을 반으로 나눈 후 다시 반으로 나눈 값인 2 가 출력된다.

 

 

- 입력 : 정수 한 개가 입력된다. 단, -1073741824 ~ +1073741823
ex ) 1024

- 출력 : 2배 곱한 정수를 출력한다.

ex ) 2048

 

package _CodeUp_;

import java.util.Scanner;

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

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();

        System.out.println(a << 1);

    }
}

 

완성된 코드

 

 

 

 

 

 

1048 : [기초-비트시프트연산] 한 번에 2의 거듭제곱 배로 출력하기

 

< 문제 설명 >

-  정수 2개(a, b)를 입력받아 a를 2b배 곱한 값으로 출력해보자. 0 <= a <= 10, 0 <= b <= 10

< 참고 >
- 예를 들어 1 3 이 입력되면 1을 23(8)배 하여 출력한다.

 

< 예시 >
int a=1, b=10;
printf("%d", a << b); //210 = 1024 가 출력된다.

 

 

- 입력 : 정수 2개가 공백을 두고 입력된다. 0 <= a, b <= 10
ex ) 1 3

- 출력 : a 를 2의b승 배 만큼 곱한 값을 출력한다.
ex ) 8

 

package _CodeUp_;

import java.util.Scanner;

public class code2 {
    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);
    }
}

 

완성된 코드

 

 

 

 

 

1049 : [기초-비교연산] 두 정수 입력받아 비교하기1

 

< 문제 설명 >

-  두 정수(a, b)를 입력받아 a가 b보다 크면 1을, a가 b보다 작거나 같으면 0을 출력하는 프로그램을 작성해보자.

< 참고 >
- 어떤 값을 비교하기 위해 비교/관계연산자(comparison/relational)를 사용할 수 있다.

- 비교/관계연산자 > 는 왼쪽의 값이 오른쪽 값 보다 큰 경우 참(true)을 나타내는 정수값 1로 계산하고, 그 외의 경우에는 거짓(false)를 나타내는 정수값 0으로 계산한다.

- 비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고, 결과를 1(참), 또는 0(거짓)으로 계산해 주는 연산자이다.

- 비교/관계연산자는 >, <, >=, <=, ==(같다), !=(다르다) 6개가 있다.

 

< 예시 >
printf("%d", 123<456); //비교 연산자 < 의 계산 결과인 1(참)이 출력된다.

 

 

- 입력 : 두 정수 a, b가 공백을 두고 입력된다. -2147483648 <= a, b <= +2147483647
ex ) 9 1

- 출력 : a가 b보다 큰 경우 1을, 그렇지 않은 경우 0을 출력한다.
ex ) 1

 

package _CodeUp_;

import java.util.Scanner;

public class code2 {
    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 if (a <= b) {
            System.out.println(0);
        }
    }
}

 

완성된 코드

 

 

 

 

1050 : [기초-비교연산] 두 정수 입력받아 비교하기2

 

< 문제 설명 >

-  두 정수(a, b)를 입력받아
a와 b가 같으면 1을, 같지 않으면 0을 출력하는 프로그램을 작성해보자.


< 참고 >
- 어떤 값을 비교하기 위해 비교/관계연산자(comparison/relational)를 사용할 수 있다.

- 비교/관계연산자 == 는 두 개의 값이 같은 경우 참(true)을 나타내는 정수값 1로 계산하고, 다른 경우 거짓(false)를 나타내는 정수값 0으로 계산한다.

- 비교/관계연산자도 일반적인 사칙연산자처럼 주어진 두 수를 이용해 계산을 수행하고, 그 결과를 1(참), 또는 0(거짓)으로 계산해 주는 연산자이다.

- 비교/관계연산자는 >, <, >=, <=, ==(같다), !=(다르다) 6개가 있다.

* 수학에서 왼쪽과 오른쪽의 계산 결과가 같음(동치)을 나타내는 기호 = 는 C언어에서 전혀 다른 의미로 사용된다. *

- a=1 와 같은 표현은 a와 1의 값이 같다는 의미가 아니라 오른쪽의 계산 결과인 1을 왼쪽의 변수 a에 저장하라는 의미이다.

 

- 입력 : 두 정수 a, b가 공백을 두고 입력된다. -2147483648 <= a, b <= +2147483647
ex ) 0 0

- 출력 : a와 b의 값이 같은 경우 1을, 그렇지 않은 경우 0을 출력한다.
ex ) 1

 

package _CodeUp_;

import java.util.Scanner;

public class code2 {
    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 if (a != b) {
            System.out.println(0);
        }
    }
}

 

완성된 코드

 

 

 

이렇게 해서 오늘은 코드업 1041 ~ 1050번 까지 풀어보았습니다.

다들 오늘도 열공하세요  ! - !

 

 

'JAVA' 카테고리의 다른 글

< (JAVA) 코드업 1071 ~ 1080 >  (0) 2024.04.01
< (JAVA) 코드업 1061 ~ 1070 >  (0) 2024.03.29
< (JAVA) 코드업 1051 ~ 1060 >  (0) 2024.03.28
< 구구단 출력하기 (JAVA) >  (0) 2024.03.17
< (JAVA) 369 게임 만들기 >  (0) 2024.03.16