Java

    [백준] 2023 - 신기한 소수 (자바 Java)

    [Gold V] 신기한 소수 - 2023 문제 링크 성능 요약 메모리: 12856 KB, 시간: 108 ms 분류 백트래킹(backtracking), 수학(math), 정수론(number_theory), 소수 판정(primality_test) 문제 설명 수빈이가 세상에서 가장 좋아하는 것은 소수이고, 취미는 소수를 가지고 노는 것이다. 요즘 수빈이가 가장 관심있어 하는 소수는 7331이다. 7331은 소수인데, 신기하게도 733도 소수이고, 73도 소수이고, 7도 소수이다. 즉, 왼쪽부터 1자리, 2자리, 3자리, 4자리 수 모두 소수이다! 수빈이는 이런 숫자를 신기한 소수라고 이름 붙였다. 수빈이는 N자리의 숫자 중에서 어떤 수들이 신기한 소수인지 궁금해졌다. N이 주어졌을 때, 수빈이를 위해 N자리 ..

    [백준] 10986 - 나머지 합 (자바/Java)

    [Gold III] 나머지 합 - 10986 문제 링크 성능 요약 메모리: 160148 KB, 시간: 440 ms 분류 수학(math), 누적 합(prefix_sum) 문제 설명 수 N개 A1, A2, ..., AN이 주어진다. 이때, 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 구하는 프로그램을 작성하시오. 즉, Ai + ... + Aj (i ≤ j) 의 합이 M으로 나누어 떨어지는 (i, j) 쌍의 개수를 구해야 한다. 입력 첫째 줄에 N과 M이 주어진다. (1 ≤ N ≤ 106, 2 ≤ M ≤ 103) 둘째 줄에 N개의 수 A1, A2, ..., AN이 주어진다. (0 ≤ Ai ≤ 109) 출력 첫째 줄에 연속된 부분 구간의 합이 M으로 나누어 떨어지는 구간의 개수를 출력한다. 누..

    [자바/Java] 예외 처리 (Exception)

    목차 에러와 예외 어떤 원인에 의해 오동작하거나 비정상적으로 종료되는 경우 Error 메모리 부족, stack overflow와 같이 일단 발생하면 복구할 수 없는 상황 프로그램의 비정상적 종료를 막을 수 없음 → 디버깅 필요 Exception 읽으려는 파일이 없거나, 네트워크 연결이 안 되는 등 수습될 수 있는 비교적 상태가 약한 것들 프로그램 코드에 의해 수습될 수 있는 상황 예외처리란? 예외 발생 시 프로그램의 비정상 종료를 막고 정상적인 실행 상태를 유지하는 것 예외의 감지 및 예외 발생 시 동작할 코드 작성 필요 예외 처리 키워드 try-catch try { // 예외가 발생할 수 있는 코드 } catch (Exception e) { // 예외가 발생했을 때 처리할 코드 } // try-catc..

    [자바/Java] 직렬화와 역직렬화, ObjectInputStream ObjectOutputStream, Serializable

    목차 출처 https://steady-coding.tistory.com/576 https://hub1234.tistory.com/26 https://velog.io/@wansook0316/Serialization-Deserialization https://flowarc.tistory.com/entry/Java-객체-직렬화Serialization-와-역직렬화Deserialization 데이터 직렬화와 역직렬화 데이터 직렬화 메모리를 디스크에 저장하거나, 네트워크 통신에 사용하기 위한 형식으로 변환하는 것 데이터 역직렬화 디스크에 저장한 데이터를 읽거나, 네트워크 통신으로 받은 데이터를 메모리에 쓸 수 있도록 변환하는 것 직렬화가 필요한 이유 값 형식 데이터 스택에 메모리가 쌓이고, 값으로 직접 접근이 가능..

    [자바/Java] 객체 참조 시 인터페이스 사용 이유

    [자바/Java] 객체 참조 시 인터페이스 사용 이유

    참고 링크 https://okky.kr/article/546389 OKKY | ArrayList를 사용할 때 레퍼런스 변수를 List 타입으로 만드는 이유가 궁금합니다. 안녕하세요. 1년차 새내기 개발자입니다. 회사에서 자바를 사용하는데, 제가 써 본 적이 없어서 처음부터 공부하는 중입니다. List String list new ArrayList String (); 공부하면서 예제를 보니 위와 같은 okky.kr Collection이나 Class를 공부하면서, 객체를 참조할 때 그 클래스가 아닌 인터페이스를 참조하는 경우가 많음을 알게 되었다. 그냥 인스턴스의 클래스를 참조하면 될 것 같은데 왜 인터페이스를 사용하는지 궁금해서 찾아보았다. 형태 변형이 자유롭다 List 인터페이스에 있는 ArrayList..

    [자바/Java] 제네릭 Generics

    제네릭 Generics 다양한 타입의 객체를 다루는 메서드, 컬렉션 클래스에서 컴파일 시에 타입을 미리체크하는 것 Generic이 아닐 경우, 클래스에 모든 타입이 들어갈 수 있어 입력 시 편리하지만, 이후 클래스를 이용할 때 불편함 미리 사용할 타입을 명시 → 형 변환을 하지 않아도 됨 객체의 타입에 대한 안전성 향상 및 형 변환의 번거로움 감소 표현 클래스또는 인터페이스 선언 시 에 타입 파라미터 표시 타입 파라미터 T : reference Type E: Element K : Key V : Value Class_Name generic = new Class_Name(); Class_Name generic2 = new Class_Name(); // 생성 쪽에 쓰지 않으면 알아서 같은 타입으로 Type p..

    [자바/Java] 클래스 다형성(Polymorphism)

    다형성 Animal > Person > Student 학생 객체 → 사람 관점 → 학생 관점 (O) 사람 객체 → 사람 관점 → 학생 관점 (X) Person s2 = new Student(); // 조상 클래스의 타입(Person)으로 자식 클래스 객체(Student)를 참조 //s2.study(); // 오류남.. Person으로 보고 있음 Student st = new Person(); // 참조 불가능 상속 관계에 있을 때 조상 클래스의 타입으로 자식 클래스 객체를 참조할 수 있다. 활용 다른 타입의 객체를 다루는 배열 Person[] persons = new Person[3]; persons[0] = new Person(); persons[1] = new Student(); persons[2] ..

    [자바/Java] 클래스(Class), 상속, 생성자(Constructor), 오버라이딩(Override)

    상속 확장성, 재사용성: 부모의 생성자와 초기화 블록은 상속x 클래스 선언 시 extends 키워드를 명시: 자바는 다중 상속X 관계 부모(상위, Super) 클래스 : Person 자식(하위, Sub) 클래스 : Student 자식 클래스는 부모 클래스의 멤버변수, 메소드를 자신의 것처럼 사용할 수 있다 Object 클래스는 모든 클래스의 조상 클래스 -별도의 extends 선언이 없는 클래스는 extends Object가 생략 super 키워드생성자 호출 순서: 부모 생성자 호출 → 자식(호출된 클래스) 생성자 호출 public class Person { String name; int age; public Person() { System.out.prinln("Person 생성자"); } public ..

    [자바/Java] 싱글톤(Singleton) 패턴, Static

    생성자가 여러 차례 호출되더라도 실제로 생성되는 객체는 하나이고, 최초 생성 이후에 호출된 생성자는 최초의 생성자가 생성한 객체를 리턴 public class Manager { private static Manager = manager = new Manager(); private Manager() {} public static Manager getManager() { return manager; } 기본 생성자를 private으로 → 외부에서 인스턴스를 새로 생성할 수 없음 getManager() 메서드는 인스턴스 생성과 상관없이 호출할 수 있어야 하기 때문에 반드시 static 용도/쓰임 여러 클래스에서 동시에 공유할 때 ex. 게임 - score cf. static class와 차이: Singleto..

    [자바/Java] 배열, 1차원 배열, 2차원 배열 정리

    [자바/Java] 배열, 1차원 배열, 2차원 배열 정리

    배열 참조형 data type: String JVM 메모리 영역 스택 - 힙 참조형: String, 배열 → heap에 주소 값을 갖고 있음, 주소 1을 stack에 저장하여 힙의 값을 참조함 new로 생성: stack에 생성됨 String str1 = "서울"; //literal String str2 = new String("서울"); //object 객체 String str3 = str2; ==로 비교할 때, true 나올 수도 있음 배열의 생성과 초기화 자료형[] 배열이름 = {값1, 값2, 값3, 값4} 선언과 동시에 초기화 배열이름 = new 자료형[] {값1, 값2, 값3, 값4} 배열 생성 및 값 초기화 배열이름 = new 자료형[길이]; 배열 생성 (자료형의 초기값으로 초기화) 타입 Dat..

출처: https://gmnam.tistory.com/157 [Voyager:티스토리]