[CodeUp] C언어 기초 100제 (1041~1050) - Java

황은하·2021년 5월 3일
0

알고리즘

목록 보기
25/100
post-thumbnail

✔ 1041

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        int c = sc.next().charAt(0) + 1;
        System.out.println((char) c);
    }
}

입력받은 문자를 아스키코드로 저장하는데, 그 다음 문자를 출력해야 하기 때문에 1을 더해줬다.


✔ 1042

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();
        
        System.out.println(a / b);
    }
}

✔ 1043

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();
        System.out.println(a % b);
    }
}

✔ 1044

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        long n = Long.parseLong(sc.next());
        System.out.println(++n);
    }
}

정수가 -2147483648 ~ +2147483647 의 범위로 입력되기 때문에 1을 더하면 int 범위를 초과한다. 그래서 long을 썼다.


✔ 1045

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        long a = Long.parseLong(sc.next());
        long b = Long.parseLong(sc.next());
        
        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.printf("%.2f", (double)a/(double)b);
    }
}
  • 정수 두 개가 0 <= a, b <= 2147483647, b는 0이 아니므로 a+b의 최대값이 int 범위를 초과하여 long을 사용했다.
  • 마지막 출력은 소수점 셋째자리에서 반올림하여 둘째자리까지 출력시켜야 하기 때문에 %.2f로 출력시킬 소수점 자리를 지정해주었고, long으로 입력받은 a와 b를 double로 형변환 시켜주어 소수점 아래 숫자들도 제대로 나오도록 했다.

✔ 1046

import java.util.Scanner;

public class Main{
    public static void main (String[] args) {
        Scanner sc = new Scanner(System.in);
        long n1 = Long.parseLong(sc.next());
        long n2 = Long.parseLong(sc.next());
        long n3 = Long.parseLong(sc.next());
        
        System.out.println(n1+n2+n3);
        System.out.printf("%.1f", ((float)n1+(float)n2+(float)n3)/3);
    }
}

마지막 출력은 소수점 둘째자리에서 반올림하여 첫째자리까지 출력시켜야 하기 때문에 %.1f로 출력시킬 소수점 자리를 지정해주었고, long으로 입력받은 a와 b를 double로 형변환 시켜주어 소수점 아래 숫자들도 제대로 나오도록 했다.


✔ 1047

import java.util.Scanner;

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

2배를 해줄 때 *2 뿐만 아니라 <<를 이용하여 비트단위 시프트연산자 를 사용할 수도 있다. n<<1을 하면 한 비트를 왼쪽으로 밀기 때문에 n의 2배가 된다. 반대로 n>>1을 하면 비트를 오른쪽으로 한 칸 밀기 때문에 n의 절반이 된다.


✔ 1048

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();
        System.out.println(a<<b);
    }
}

a에 2^b 만큼 곱하기 때문에 시프트 연산자를 사용했다.


✔ 1049

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();
        
        if(a > b){
            System.out.println(1);
        } else{
            System.out.println(0);
        }
        
    }
}

✔ 1050

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();
        
        if(a==b){
            System.out.println(1);
        } else{
            System.out.println(0);
        }
    }
}
profile
차근차근 하나씩

0개의 댓글