본문 바로가기
Java

[백준] 1주차 2

by 리슈다 2023. 5. 11.

 어제 풀던 백준 문제 단계별로 풀어보기 중 1단계 입출력과 사칙연산 나머지 문제들을 풀어보았다.

 

 

8) 문제 번호 18108 / 1998년생인 내가 태국에서는 2541년생?!

코딩 초보인 내가 현생에서는 ..??!

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

 문제는 불기 연도를 서기 연도로 변환하는 문제이다. 불기 연도를 y에 입력받은 후 543을 빼서 서기 연도를 출력하였다.

 

 

 

9) 문제 번호 10430 / 나머지

나머지

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();
        int C = scanner.nextInt();
        System.out.println((A+B)%C);
        System.out.println(((A%C) + (B%C))%C);
        System.out.println((A*B)%C);
        System.out.println(((A%C) * (B%C))%C);
    }
}

 

 

 

10) 문제 번호 2588 / 곱셈

곱셈

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();
        int c = b/100;
        int d = (b/10)%10;
        int f = ((b%100)%10);
        System.out.println(a*f);
        System.out.println(a*d);
        System.out.println(a*c);
        System.out.println(a*b);
    }
}

 

 처음 틀린 건 c, d, f 다 잘 구해놓고 출력문 순서를 거꾸로 출력해서 틀림.

 

 

 

11) 문제 번호 11382 / 꼬마 정민

 

진짜 레전드ㅋㅋㅋㅋㅋ

 이 문제에서 희대의 뻘짓이 등장했다. 처음 정답으로 맞춘 코드가 아래 코드

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        String A = scanner.nextLine();
        String[] Aa = A.split(" ");
        long a = Long.parseLong(Aa[0]);
        long b = Long.parseLong(Aa[1]);
        long c = Long.parseLong(Aa[2]);
        System.out.println(a+b+c);
    }
}

 문제에서 첫 번째 줄에 세 수를 공백을 사이에 두고 주어진다길래 공백을 따로 입력받아야 하는건가.. 하다가 생각해낸게 첫 번째 줄을 통째로 문자열로 받고, 문자열 사이 공백을 구분자로 해서 배열로 바꾼 뒤 각 문자 배열을 정수형으로 바꾸는 법을 생각했고, 계속 틀리면서 GPT한테 물어봐서 나온 결과가 위 코드.. GPT한테 물어본 것들은

너 정말 친절하구나
고마워

 이 두 질문으로 문자열을 배열로 받고, 문자열을 정수형으로 변환시키는 법을 알았다. 그렇게 겨우 푼 뒤 질문 게시판 들어가서 다른 사람들은 뭘 물어봤나 하고 봤는데..

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner scanner = new Scanner(System.in);
        long a = scanner.nextLong();
        long b = scanner.nextLong();
        long c = scanner.nextLong();
        System.out.println(a+b+c);
    }
}

 더 쉽고 간단하고 편리하고 좋은(?) 답 발견.. 알아보니 자바는 공백으로도 구분해서 입력 받는다고 하네.. 생각해보니 지금까지 푼 문제에서도 공백으로 입력 받은 것 같기도 하고.. 난 무엇을 한건가..

 

고마운데.. 앞에서 귀띔좀 해주지..

 그래도 새로 알 수 있었고 써본 것들 

 1. 문자열 배열 사용해서 입력 받아보기

 2. split() 사용해서 공백을 기준으로 나누어 저장하기

 3. 문자열을 정수형으로 바꾸는 방법

 4. 자바는 숫자 입력을 공백으로도 구분해서 받는다^^

꼭 기억하자.

 

 

 

12) 문제 번호 10171 / 고양이

야옹

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

 처음엔 이게 무슨 문제인가 싶다가 역슬래쉬는 그냥 출력하면 안되고 역슬래쉬를 출력하려면 앞에 역슬래쉬를 한 번 더 붙여야 함을 알게 되었다.

 

 

 

13) 문제 번호 10172 / 개

멍멍

public class Main{
    public static void main(String[] args){
        System.out.println("|\\_/|");
        System.out.println("|q p|   /}");
        System.out.println("( 0 )\"\"\"\\");
        System.out.println("|\"^\"`    |");
        System.out.println("||_/=\\\\__|");
    }
}

 앞의 고양이 문제에서 알 수 있던 역슬래쉬를 출력하려면 역슬래쉬를 앞에 한 번 더 붙여야 하는데, 역슬래쉬 뿐만 아니라 '"'(쌍따옴표) 역시도 앞에 역슬래쉬를 붙여 줘야 출력 가능하다.

'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주차  (0) 2023.05.10