[JAVA] 백준 1단계

2024. 9. 3. 00:03코딩 테스트(Coding Test)/백준

2557 Hello World

나의 답)

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

1000 A+B

나의 답1) 176ms

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

 

나의 답2) 100ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        
        System.out.println(A + B);
    }
}

 

다른 사람 답) 104ms

public class Main{
    public static void main(String[] args) throws Exception{
        int a = System.in.read() - '0';
        System.in.read();
        int b = System.in.read() - '0';
        System.out.print(a + b);
    }
}

 

코드 설명

  1. int a = System.in.read() - '0';
    • System.in.read()는 입력된 첫 번째 문자의 ASCII 값을 읽어옵니다.
    • 예를 들어, 입력이 "3 5"라면, 첫 번째로 읽히는 문자는 '3'입니다.
    • 이때 '3'의 ASCII 값은 51입니다. - '0'을 하면 '0'의 ASCII 값(48)이 차감되어 실제 숫자 값 3이 됩니다.
    • 즉, a 변수에는 입력된 첫 번째 숫자가 정수로 저장됩니다.
  2. System.in.read();
    • System.in.read()를 한 번 더 호출하지만, 이 값은 아무 변수에도 저장되지 않습니다.
    • 이 줄은 공백 문자(' ')를 무시하는 역할을 합니다. 즉, 입력된 숫자와 숫자 사이에 있는 공백을 처리하기 위한 것입니다.
  3. int b = System.in.read() - '0';
    • 마찬가지로 두 번째 문자를 읽어와서 숫자로 변환합니다. 앞에서 설명한 것처럼 입력이 "3 5"라면, 이번에는 '5'를 읽어와서 ASCII 값에서 '0'의 값을 빼고 5라는 숫자를 얻습니다.
  4. System.out.print(a + b);
    • a와 b의 합을 계산하여 출력합니다. 위 예제에서는 3 + 5 = 8이 출력됩니다.

1001 A-B

나의 답1) 100ms

class Main {
    public static void main(String[] args) throws Exception {
        int A = System.in.read() - '0';
        System.in.read();
        int B = System.in.read() - '0';
        System.out.print(A - B);
    }
}

 

나의 답2) 168ms

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.print(A - B);
    }
}

 

나의 답3) 104ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        System.out.print(A - B);
    }
}

10998 AxB

나의 답1) 100ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        System.out.print(A * B);
    }
}

 

나의 답2) 96ms

import java.io.*;
class Main {
    public static void main(String[] args) throws Exception {
        int A = System.in.read() - '0';
        System.in.read();
        int B = System.in.read() - '0';
        System.out.print(A * B);
    }
}

1008 A/B

나의 답) 100ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        
        System.out.print((double) A / B);
    }
}

10869 사칙연산

나의 답) 104ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        int a = Integer.parseInt(st.nextToken());
        int b = Integer.parseInt(st.nextToken());
        
        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);
    }
}

10926 ??!

나의 답) 108ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String str = br.readLine();
        System.out.print(str + "??!");
    }
}

18108 1998년생인 내가 태국에서는 2541년생?!

나의 답) 100ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int y = Integer.parseInt(br.readLine());
        System.out.print((y - 543));
    }
}

10430 나머지

나의 답) 104ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        int C = Integer.parseInt(st.nextToken());
        
        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));
    }
}

 

다른 사람 답1) 96ms

import java.io.*;
import java.util.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        StringBuilder sb = new StringBuilder();
        
        int A = Integer.parseInt(st.nextToken());
        int B = Integer.parseInt(st.nextToken());
        int C = Integer.parseInt(st.nextToken());
        
        sb.append((A+B)%C).append('\n').append(((A%C) + (B%C))%C).append('\n').append((A*B)%C).append('\n').append( ((A%C) * (B%C))%C);
        
        System.out.print(sb);
    }
}

 

다른 사람 답2) 100ms

import java.io.*;

class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String s = br.readLine();
        String[] strs = s.split(" ");
        
        int A = Integer.parseInt(strs[0]);
        int B = Integer.parseInt(strs[1]);
        int C = Integer.parseInt(strs[2]);
        
        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);
    }
}

2588 곱셈

나의 답) 96ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.readLine());
        int b = Integer.parseInt(br.readLine());
        
        int x = a * (b % 10);
        int y = a * (b / 10 % 10);
        int z = a * (b / 100);
        
        System.out.println(x);
        System.out.println(y);
        System.out.println(z);
        System.out.println(a * b);
    }
}

 

다른 사람의 답1) 100ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.readLine());
        String b = br.readLine();
        
        System.out.println(a * (b.charAt(2) - '0'));
        System.out.println(a * (b.charAt(1) - '0'));
        System.out.println(a * (b.charAt(0) - '0'));
        System.out.println(a * Integer.parseInt(b));
    }
}

 

코드 설명

System.out.println(a * (b.charAt(index) - '0'));

 

  • 이 부분에서는 문자열 b의 각 자릿수를 추출하여, 그 자릿수에 해당하는 값을 a와 곱합니다.
  • b.charAt(index)는 b 문자열에서 특정 인덱스에 위치한 문자를 가져옵니다.
  • (b.charAt(index) - '0')는 문자를 정수로 변환하는 방법입니다. 예를 들어, '3'이라는 문자를 charAt으로 가져오면 정수 3으로 변환됩니다.

 

다른 사람의 답2) 104ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int a = Integer.parseInt(br.readLine());
        String b = br.readLine();
        
        for(int i = b.length() - 1; i >= 0; i--) {
            System.out.println(a * (b.charAt(i) - '0'));
        }
        System.out.print(a * Integer.parseInt(b));
    }
}

11382 꼬마 정민

나의 정답) 100ms

import java.io.*;
import java.util.StringTokenizer;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        
        long a = Long.parseLong(st.nextToken());
        long b = Long.parseLong(st.nextToken());
        long c = Long.parseLong(st.nextToken());
        System.out.println((a + b + c));
    }
}

 

다른 사람의 정답) 100ms

import java.io.*;
class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder();
        
        String[] arr = br.readLine().split(" ");
        long[] nums = new long[3];
        long res = 0;
        
        for(int i = 0; i < 3; i++) {
            nums[i] = Long.parseLong(arr[i]);
            res += nums[i];
        }
        System.out.print(res);
    }
}

10171 고양이

나의 답) 100ms

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

10172 개

나의 답) 96ms

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("||_/=\\\\__|");
    }
}

 

 

다른 사람의 답) 92ms

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

'코딩 테스트(Coding Test) > 백준' 카테고리의 다른 글

[JAVA] 백준 3단계  (0) 2024.09.04
[JAVA] 백준 2단계  (0) 2024.09.03
[Python] 윤년  (0) 2024.07.17
[Python] 시험 성적  (0) 2024.07.17
[Python] 두 수 비교하기  (0) 2024.07.17