자바

    [백준] 에라토스테네스의 체

    [백준] 에라토스테네스의 체

    [백준] 2960번 에라토스테네스의 체 자바 들어가며 오늘은 시간 복잡도를 고려하여 소수를 찾는 알고리즘은 에라토스테네스의 체와 관련 문항에 대해서 정리해보려 한다. 에라토스테네스의 체 에라토스테네스의 체는 소수를 찾는 대표적인 알고리즘이다. 위 이미지는 에라토스테네스의 체의 원리를 잘 나타내고 있다. 원리 2부터 소수를 구하고자 하는 구간(N, 위 이미지에서는 120)의 모든 수를 나열한다.(주로 N+1까지의 int 배열을 생성한다.) 생성한 int 배열을 for문을 활용, i = 2부터 i

    [Java] 자바 추상클래스와 인터페이스의 차이

    [Java] 자바 추상클래스와 인터페이스의 차이

    [Java] 추상클래스와 인터페이스의 차이 들어가며 오늘은 자바 추상클래스와 인터페이스의 차이에 대해서 정리해보고자 한다. 추상클래스(abstract class) 클래스를 설계도에 비유한다면 추상클래스는 미완성 설계도에 비유할 수 있다. public abstract class animal {} class 앞에 'abstract' 키워드를 붙여 사용하며, 일반적으로 하나 이상의 추상 메서드를 가진 클래스를 말한다. 추상 메서드를 선언함으로써 상속을 통해 하위 클래스에서 이를 구현하도록 강제하는 클래스이다. (추상 메서드를 포함하지 않는 클래스에도 'abstract'를 붙여 추상 클래스로 지정 가능하지만, 반대로 추상 메스드를 포함하는 클래스는 반드시 추상 클래스여야 한다.) abstract로 선언된 추상 ..

    [백준] A+B - 4(feat.BufferedReader EOF)

    [백준] A+B - 4(feat.BufferedReader EOF)

    들어가며 1일 1 커밋을 위해 백준 문제 풀이를 이어나가다 기존의 학습했던 내용으로는 해결 불가능한 부분이 발생하여 문제 해결 후, 그 과정을 기록해보고자 한다. A+B - 4 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있으며, 각 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 각 테스트 케이스마다 A+B를 출력한다. 예제 입력 1 1 1 2 3 3 4 9 8 5 2 예제 출력 2 2 5 7 17 7 EOF(End of File) 이 문제 자체의 난이도만 보았을 때는 정말 쉬운 문제이지만 가장 중요한 점은 파일 종료 조건이 없이 예제 입력만 주어졌다는 것이다...

    [Java] 접근 제어자(private, default, protected, public)

    [Java] 접근 제어자(private, default, protected, public)

    기술면접 대비 - 접근 제어자 들어가며 오늘은 자바의 접근 제어자(Access Modifier)에 대해 정리해보고자 한다. 접근 제어자(Access Modifier) 객체 지향에서 사용자는 정보 은닉(data hiding)을 통해 언제나 최소한의 정보만으로 프로그램을 손쉽게 사용할 수 있다. 정보 은닉은 사용자가 알 필요 없는 정보를 숨겨야 한다는 개념으로 자바는 이러한 정보 은닉을 위해 접근 제어자라는 기능을 제공하며 자바는 접근 제어자를 사용하여 변수나 메서드의 사용 권한을 설정해 정보 은닉을 구체화 할 수 있다. private ➡ default ➡ protected ➡ public 순으로 보다 많은 접근을 허용한다. private 접근 제어자가 private으로 설정되어있다면 private이 붙은 ..

    [백준] 2741 N찍기 Java

    [백준] 2741 N찍기 Java

    N찍기 문제 자연수 N이 주어졌을 때, 1부터 N까지 한 줄에 하나씩 출력하는 프로그램을 작성하시오. 출력 첫째 줄부터 N번째 줄 까지 차례대로 출력한다. 예제 입출력 문제풀이 1. Scanner + sout 이번 문제는 풀이를 할 것 없이 매우 간단한 문제였기에 기본적으로 풀 수 있는 Scanner와 sout을 이용한 방법, Scanner 대신 BufferedReader를 사용한 방법 그리고 마지막으로 sout 대신 BufferedWriter까지 사용한 방법 세 가지로 문제를 풀어보았다. //Scanner 클래스와 sout으로 작성 import java.util.Scanner; public class Main { public static void main(String[] args){ Scanner sc..

    [백준] 15552 빠른 A+B Java

    [백준] 15552 빠른 A+B Java

    빠른 A + B 문제 본격적으로 for문 문제를 풀기 전에 주의해야 할 점이 있다. 입출력 방식이 느리면 여러 줄을 입력받거나 출력할 때 시간초과가 날 수 있다는 점이다. C++을 사용하고 있고 cin/cout을 사용하고자 한다면, cin.tie(NULL)과 sync_with_stdio(false)를 둘 다 적용해 주고, endl 대신 개행문자(\n)를 쓰자. 단, 이렇게 하면 더 이상 scanf/printf/puts/getchar/putchar 등 C의 입출력 방식을 사용하면 안 된다. Java를 사용하고 있다면, Scanner와 System.out.println 대신 BufferedReader와 BufferedWriter를 사용할 수 있다. BufferedWriter.flush는 맨 마지막에 한 번만..

    [백준] 2480 주사위 세개 Java

    [백준] 2480 주사위 세개 Java

    2480 주사위 세개 문제 1에서부터 6까지의 눈을 가진 3개의 주사위를 던져서 다음과 같은 규칙에 따라 상금을 받는 게임이 있다. 같은 눈이 3개가 나오면 10,000원+(같은 눈)×1,000원의 상금을 받게 된다. 같은 눈이 2개만 나오는 경우에는 1,000원+(같은 눈)×100원의 상금을 받게 된다. 모두 다른 눈이 나오는 경우에는 (그 중 가장 큰 눈)×100원의 상금을 받게 된다. 예를 들어, 3개의 눈 3, 3, 6이 주어지면 상금은 1,000+3×100으로 계산되어 1,300원을 받게 된다. 또 3개의 눈이 2, 2, 2로 주어지면 10,000+2×1,000 으로 계산되어 12,000원을 받게 된다. 3개의 눈이 6, 2, 5로 주어지면 그중 가장 큰 값이 6이므로 6×100으로 계산되어 6..

    [백준] 1000 A+B Java

    [백준] 1000 A+B Java

    1000 A+B 문제 두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오 입력 첫째 줄에 A와 B가 주어진다. (0 < A, B < 10) 출력 첫째 줄에 A+B를 출력한다. 예제입력 1 2 예제출력 3 문제풀이 기초부터 다져가기에 좋은 문제였던 것 같다. 사용 방법은 알고있지만 작성 방법을 기억하고 있지 못했던 Scanner 사용법에 대해서 익힐 수 있었다. Scanner 클래스는 갑을 입력받아와서 동작하는 클래스이다. 사용을 위해서는 util 패키지를 경로의 Scanner 클래스를 호출해와야 한다. import java.util.Scanner; 그 후 메인메소드 내부에 Scanner 클래스를 호출시켜줘야 한다. Scanner scanner = new Scanner(system...