백준 1001

백준 10998

백준 1008

 

백준 1000과 같은 맥락의 문제로 백준 1000을 풀었다면,

 

백준 1001, 10998, 1008은 사칙연산 기호만 안다면 쉽게 풀 수 있는 문제입니다.

 

추가로 백준 1008 문제는 타입 변환을 아는지 묻는 문제라고 생각합니다.

[타입 변환]

자동 타입 변환(암시적 형변환, 묵시적 형변환, promotion)

값의 허용 범위가 작은 타입이 허용 범위가 큰 타입으로 저장될 때 발생합니다.

 

정수 타입 < 실수 타입

강제 타입 변환(명시적 형변환, casting)

캐스팅 연산자 괄호( )를 사용해서 큰 허용 범위 타입을 작은 허용 범위 타입으로 강제로 나눠서 저장하는 방식입니다.

 

강제로 변환 시 자료 일부가 사라질 수도 있습니다.

 

그리고 논리 타입은 형 변환이 불가능합니다.

 

추가적으로 타입에 대한 설명입니다.

[타입]

데이터 타입에는 기본 타입(primitive type)과 참조 타입(reference type)이 존재합니다.

 

각 타입은 자신이 사용할 수 있는 메모리의 크기와 값의 범위가 다릅니다.

 

간단한 개념만 설명하겠습니다.

 

기본 타입은 타입의 변수에 자체가 저장됩니다.

 

하지만, 참조 타입의 변수에는 객체의 주소가 저장됩니다.

 

주소로 객체를 참조한다는 의미에서 참조 타입이라고 부릅니다.

 

참조 타입 중에서는 String(클래스), 배열만 설명하겠습니다.

 

[기본 타입]

정수 타입 : byte, short, int(많이 사용), long, char

실수 타입 : float, double(많이 사용)

논리 타입 : boolean

 

[참조 타입]

String, 배열, 열거, 클래스, 인터페이스

[기본 타입]

정수 타입

소수점이 없는 리터럴

 

추가적으로 char 타입은 음수 값이 없고, 

 

하나의 문자를 작은따옴표( ' ' )로 감싼 것을 문자 리터럴이라고 부르고 유니코드로 변환되어 저장됩니다.

실수 타입

소수점이 있는 리터럴

논리 타입

참과 거짓을 의미하는 논리 리터럴로 true와 false를 뜻합니다.

 

주의할 점은 반드시 소문자로 작성해야 합니다.

[참조 타입]

String(클래스 타입)

char 타입과 다르게 큰 따옴표( " ")로 감싼 문자들을 문자열이라고 부르고 유니코드로 전환되지 않습니다.

배열

같은 타입의 데이터를 연속된 공간에 나열하고, 각 데이터에 인덱스(index)를 부여한 자료 구조

 

++

리터럴 : 소스 코드에서 프로그래머에 의해 직접 입력된 값

백준 1001

import java.util.*;
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();
    }
}

백준 10998

import java.util.*;
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();
    }
}

백준 1008

import java.util.*;
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((double)A/B);
        sc.close();
    }
}