본문 바로가기
Java

[백준] 1주차

by 리슈다 2023. 5. 10.

 스터디 시작. 정말 아무것도 모르는 초보지만 매일 조금씩 하다보면 나아지겠지

 

 

 가장 쉬운 문제부터 단계별로 풀어보자

 

 

 물론 가장 쉬운 문제라고 안틀린다는 건 아님. 한 번만 틀린다는 것도 아님.

1) 문제 번호 2557 / Hello World!

5트만에 성공ㅋ..

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

 

 

 

2) 문제 번호 1000 / A+B

2번만에 성공

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        System.out.println(A+B);
    }
}

 

그리고 알게 된 사실

자바 언어 도움말

첫 번째 문제 틀리면서 찾은 언어 도움말. 클래스 이름 Main으로 설정해야하는 이유가 여기 있다.

 

 

 

3) 문제 번호 1001 / A-B

A-B

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        System.out.println(A-B);
    }
}

 

 

 

4) 문제 번호 10869 / AxB

AxB

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        System.out.println(A*B);
    }
}

 

 

 

5) 문제 번호 1008 / A/B

A/B, 3번만에 성공

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.nextInt();
        System.out.println((double)A/B);
    }
}

 처음 틀린건 double 말고 float를 사용해서 틀렸다. 문제 조건 중에 '실제 정답과 출력값의 절대오차 또는 상대오차가 10^(-9) 이하이면 정답이다.'가 있는데 아마 float는 소수점 7자리까지 출력을 해서 틀리다고 한 듯하다. (double은 소수점 15자리까지 나타낼 수 있다고 한다.)

 

 

 

6) 문제 번호 10869 / 사칙연산

사칙연산

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        int A = scanner.nextInt();
        int B = scanner.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/B로 쓰는 바람에 틀렸다.

 

 

 

7) 문제 번호 10926 / ??!

??!

문제 : 준하는 사이트에 회원가입을 하다가 joonas라는 아이디가 이미 존재하는 것을 보고 놀랐다. 준하는 놀람을 ??!로 표현한다. 준하가 가입하려고 하는 사이트에 이미 존재하는 아이디가 주어졌을 때, 놀람을 표현하는 프로그램을 작성하시오.

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String A = scanner.nextLine();
        System.out.println(A+"??!");
    }
}

 Scanner로 문자열 입력 받을 때 'int 받을 땐 nextInt(); 썼으니 String은 nextString(); 쓰면 되지 않을까?'란 생각에 써봤지만 컴파일 에러가 발생한다고 결과가 나왔다. chatGPT에 물어보니

똑똑한 자식.. 아니, 선생님.

정말 친절히 답해주었다.. 창피해 하지 말자 모르면 배우면 되는 거잖아! 모를 수도 있지.. 안그래..?

 하튼, Scanner 클래스에는 nextString()은 없고 문자열을 입력받으려면 next() 또는 nextLine()을 사용하라고 한다.

 

'Java' 카테고리의 다른 글

[백준] 2주차 2  (1) 2023.05.19
[백준] 2주차 1  (1) 2023.05.19
[백준] 1주차 4  (1) 2023.05.14
[백준] 1주차 3  (0) 2023.05.14
[백준] 1주차 2  (0) 2023.05.11