자바 203

[JAVA] 백준 10815번- 숫자 카드

https://www.acmicpc.net/problem/10815 10815번: 숫자 카드 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; import java.util.StringTokenizer; public class Main{ public static void main(String[] ar..

ALGORITHM 2022.07.30

[JAVA] 백준 1920번- 수 찾기

https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net import java.util.Arrays; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] a = new int[n]; for..

ALGORITHM 2022.07.30

[JAVA] 이너 클래스(인스턴스, 정적, 지역)

인스턴스 멤버 이너 클래스 객체 내부에 멤버의 형태로 존재 아우터 클래스의 모든 접근 지정자의 멤버에 접근할 수 있음 객체 생성 class A { class B{ } } A a = new A(); A.B b = a.new B(); 이너 클래스 내부에서 아우터 클래스의 멤버를 참조 -> '아우터 클래스명.this' 정적 멤버 이너 클래스 이너 클래스 앞에 static 키워드가 포함 아우터 클래스의 멤버중 객체 생성 없이 바로 사용할 수 있는 정적 멤버만 정적 이너 클래스 내부에서 사용할 수 있음 객체 생성 class A{ static class B{ } } A.B b = new A.B(); 지역 이너 클래스 클래스의 멤버가 아닌 메서드 내에서 정의되는 클래스 정적 클래스로 지정할 수 없음 객체 생성 cla..

BACK/JAVA 2022.07.28

[JAVA] 이너 인터페이스

인터페이스를 클래스 내부에 정의하는 것을 이너 인터페이스라고 한다. 해당 클래스에 의존적인 기능을 수행할 때 이너 인터페이스를 사용한다. 이너 인터페이스의 중요한 특징은 정적 이너 인터페이스만 존재할 수 있다는 것이다. static 제어자를 생략하면 컴파일러가 자동으로 추가해준다. class A{ // ... static interface B{ void bcd(); } } 인터페이스의 객체를 생성하려면 해당 인터페이스를 상속한 자식 클래스를 생성한 후 생성자를 이용하거나 익명 이너 클래스를 이용해 객체를 생성해야한다. 자체적으로는 객체를 생성할 수 없다. 이 때, 객체의 타입을 '아우터 클래스명.이너 인터페이스명' 과 같이 사용한다. class A{ interface B{ // 이너 인터페이스는 자동으로..

BACK/JAVA 2022.07.28

[JAVA] 인터페이스, 디폴트 메서드

인터페이스란? 인터페이스의 의미는 입출력 방식의 호환성을 의미한다. 내부의 모든 필드가 public static final로 정의되고, static과 default 메서드 이외의 모든 메서드는 public abstract로 정의된 객체지향 프로그래밍 요소이다. interface 키워드를 사용해 선언한다. interface A { public static final int a = 3; public abstract void abc(); } 필드와 메서드 앞에 제어자가 확정되어있고 이는 생략해도 컴파일러가 자동으로 삽입한다. 인터페이스의 상속 클래스가 인터페이스를 상속할 때는 implements 키워드를 사용한다. 클래스에서는 여러 부모 클래스에 동일한 이름의 필드나 메서드가 존재할 때 이를 내려받으면 충돌이..

BACK/JAVA 2022.07.28

[JAVA] 알고리즘 : 정렬- 뮤직비디오(결정 알고리즘)

import java.util.*; public class Main{ public int count(int[] arr, int capacity){ // dvd의 한장 용량을 capacity로 했을 때 // dvd가 몇장 필요한지 리턴 int cnt=1; // dvd 장 수 int sum=0; // dvd에 담아내는 곡들의 합 for(int x : arr){ if(sum+x>capacity){ // 곡을 담았을 때 한장의 용량을 넘어가버리면 cnt++; // 한 장 증가 sum=x; // 새로운 값으로 } else sum+=x; // 누적 } return cnt; } public int solution(int n, int m, int[] arr){ int answer=0; int lt=Arrays.stre..

ALGORITHM 2022.07.28

[JAVA] charAt(i) -'0' 사용 이유

charAt이란 string 타입으로 받은 문자열을 char 타입으로 한 글자만 받게 해주는 함수이다. 숫자형 문자를 CharAt함수로 추출하면 char형이므로 int 형으로 변환하려하면 아스키코드로 변환된다. 따라서 '0' 또는 48을 빼주어야 의도한대로 계산할 수 있다. String n = "123"; n.charAt(0); // 1 n.charAt(1); // 2 n.charAt(2); // 3 (int)n.charAt(0) + (int)n.charAt(1) // 49 + 50 = 99 '0'(char) => 48 '1'(char) => 49 '2'(char) => 50 여기서 -'0'(48)을 해주면 원하는 숫자가 나온다. n.charAt(0)-'0' = 49-48 = 1 n.charAt(1)-'..

BACK/JAVA 2022.07.27

[JAVA] 백준 2098번- 상수

https://www.acmicpc.net/problem/2908 2908번: 상수 상근이의 동생 상수는 수학을 정말 못한다. 상수는 숫자를 읽는데 문제가 있다. 이렇게 수학을 못하는 상수를 위해서 상근이는 수의 크기를 비교하는 문제를 내주었다. 상근이는 세 자리 수 두 www.acmicpc.net 방법1 import java.util.*; public class Main { public static void main(String[] args) { Scanner sc=new Scanner(System.in); int answer=0; for(int i=0; i

ALGORITHM 2022.07.27

[JAVA] 알고리즘 : 정렬- 좌표 정렬(compareTo)

import java.util.*; class Point implements Comparable {// 포인트라는 클래스 객체를 정렬한다. public int x, y; Point(int x, int y){ this.x=x; this.y=y; } @Override public int compareTo(Point o){ if(this.x==o.x) return this.y-o.y; // x가 같으면 y를 비교 // 오름차순 정렬이므로 this.y-o.y 는 음수 else return this.x-o.x; } } public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.n..

ALGORITHM 2022.07.27