반응형

자바 24

[자바]1181 단어 정렬[백준]

초점 -단어의 길이가 짧은 순서대로 -길이가 같을 경우 사전 순으로 -같은 단어가 중복되어있을경우 한번만 출력하기 이번 문제로 배운게 있다면 배열에 특정 규칙을 정해 정렬을 하고 싶다면 Arrays.sort메소드에 Comparator을 구현해주면 된다. [Arrays.sort() 는 단순 배열을 오름차순으로 정렬해주는 것 뿐만 아니라 사용자에 의해 구현할 수 있다. ] Arrays.sort() 메소드 안에는 두 객체(원소)를 비교하여 순서를 바꿀지 판단하면서 정렬을 해준다. Comparator는 객체를 비교할 수 있도록 해주는 인터페이스다. int, char, double 등의 자바에서 제공하는 자료형들은 비교가 가능하지만, 특정 규칙에 의해 비교를 하고 싶은 경우에는 Comparator를 구현해야 한다..

백준 /11720 자바/숫자의 합

https://www.acmicpc.net/problem/11720 11720번: 숫자의 합 첫째 줄에 숫자의 개수 N (1 ≤ N ≤ 100)이 주어진다. 둘째 줄에 숫자 N개가 공백없이 주어진다. www.acmicpc.net 첫줄에 숫자의 갯수 N을 받고 다음줄에 N개의 숫자가 공백없이 주어진다. 두번째 줄의 문자열로 받은 후 -> 문자로잘라주고 -> 숫자로 변경해서 더해주는게 핵심이다. [풀이] 1.Scanner를 통해 받은 숫자의 갯수를 N에 저장 2.N개의 연속된 숫자들을 스트링 타입의 number에 저장 3.for문을 통해 N개의 갯수를 돌면서 sum에 누적을 해준다. (나는 number에 각 위치별문자를 String.valueOf로 변환하고 다시 Integer로 parseInt를 해서 누적해..

4673 셀프넘버 JAVA 백준 문제풀이

처음엔 무슨말인지 잘 이해가 되지않아 한참을 보았다. 요점은 1~10000이하의 생성자가 없는 수 를 구하는것. [접근방식] 1.boolean 배열을 선언하여 셀프 넘버를 구분했다. (1~10000이하의 수 이기 때문에 배열의길이를 [10001]로 설정했다.) 2. for문을통해 1부터 10000까지 d(i)를 구한다. 3. d(i)를 메소드로 계산을 해준 후 나온값을 n저장하고 n의 값이 10001보다 작을경우 배열의[n]값을 true로 선언을 해준다. 4.이렇게 한다면 n이 true값으로 있는 수는 생성자가 있다는 뜻! 5.다시한번 for문을 통해 1~10000까지 돌면서 해당 배열에 저장된 값을 돌면서 flase( 생성자가 없는 값)만 출력해준다. 1 2 3 4 5 6 7 8 9 10 11 12 1..

1차원 배열 8958/자바/Scanner/BufferReader

https://www.acmicpc.net/problem/8958 8958번: OX퀴즈 "OOXXOXXOOO"와 같은 OX퀴즈의 결과가 있다. O는 문제를 맞은 것이고, X는 문제를 틀린 것이다. 문제를 맞은 경우 그 문제의 점수는 그 문제까지 연속된 O의 개수가 된다. 예를 들어, 10번 문제의 점수 www.acmicpc.net 주의할 점 각 케이스마다 점수를 출력한다(println). O 의 연속수 만큼 점수를 누적하여 합산하고 X가 나오면 누적값은 0으로 초기화 된다. 문자열 O X 이기 떄문에 배열은 String 이다. 방법1 Scanner를 이용하기 1.for문 이용 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 ..

추상화 클래스와 인터페이스의 공통점 / 차이점

추상화 클래스와 인터페이스의 공통점 / 차이점 1. 공통점 abstract class(추상 클래스)와 interface 는 선언만 있고 구현 내용은 없는 클래스이다. new를 해서 객체를 생성할 수 없다. 추상클래스를 extends 또는, interface를 implements 한 자식만이 객체를 생성할 수 있다. 상속받은 자식은 추상클래스나 인터페이스를 구현해야한다. (java에서는 type이 지정되있기 때문에 선언된 type과 자식의 type이 같아야만 한다.) 2. 차이점 추상클래스는 클래스이다. interface는 구현하기 전에 메소드에 대해 명세된 것이다. (그래서 상속을 받음에도 불구하고 클래스에선 상속이라고 쓰지만 interface는 implemets(구현) 이라고 쓴다.) 추상클래스는 ab..

JAVA 2020.09.11

캡슐화 /getters and etters

캡슐화 = private 멤버변수를 메소드에 넣어서 캡슐화(은닉화)를 시켜준다. 사용 이유 : 조건이 다른 값이 들어가지 못하게 경고하기 위함이라고 생각하면된다. 변수 (메모리공간)의 직접접근을 제한 하기 위해 private 사용 메소드 - 접근허용을 위해서는 public 사용 직접접근의 위험성 멤버변수의 직접접근은 데이터의 값을 변질시킬수 있는 보안의 큰 문제점을 가지고 있음 메소드에 의한 변수의 변환이 기본적인 방법이다. setter - 변수의 값을 지정 getter - 변수의 값을 호출 (이클립스 = source->getters setters를 클릭하면 쉽게 만들 수 있다 ) 메소드이름 변수 private int abc; -set변수명(인수) 1. 변수명의 첫글자는 대문자 2. 사용하는 인수명은 멤..

JAVA 2020.09.09

인터페이스 익명 구현 객체/ 다중 인터페이스/인터페이스 사용

익명구현 객체 -명시적 구현 클래스 작성을 건너뛰어 바로 구현객체를 얻는 이름없는 구현 클래스와 객체생성을 동시에 하는것 인터페이스 변수 = new 인터페이스 { //인터페이스에 선언된 추상 메소드의 실페 메소드 선언 }; 인터페이스의 추상 메소드를 모두 재정의하는 실체 메소드가 있어야한다. 추가적으로 필드 및 메서드 선언이 가능하나 익명객체 안에서만 사용가능 인터페이스 변수로 접근이 불가능 구현실행문이 끝나면 세미클론을 붙여줘야한다. ex) A a = new A( ) { }; 다중 인터페이스 다중인터페이스는 하나의 객체가 둘 이상의 인터페이스 구현하는것을 말한다. 위의 그림을 설명하자면 public class 구현클래스명 implements 인터페이스 A, 인터페이스 B { //인터페이스 A에 선언된 ..

JAVA 2020.09.08

인터페이스 / 선언/ 구현

인터페이스는 코드와 객체가 통신하는 접점을 말한다. 개발코드는 객체를 사용할때 인터페이스의 메소드만 알고있으면 된다. 인터페이스는 객체를 교환하여 사용할 수 있는데 이러한 기능은 개발코드를 변경하지 않고도 리턴값 및 실행내용을 다양하게 만들 수 있다. 인터페이스 선언법 [public] interface 인터페이스명{'''} 인터페이스의 구성멤버로는 상수, 추상메소드, 디폴트메소드, 정적메소드가 있는데 는 자바 8이후로 가능해졌다고 한다. 추가적으로 인터페이스 선언에서 알아두어야 할 부분은 상수 필드만 선언가능(데이터를 저장하지 않는다.) 선언된 필드는 모두 public static final이다. (이는 생략시에도 컴파일과정에서 자동으로 추가된다.) 상수명은 대문자로 작성 (단어가 결합되면 낙타표기법 사..

JAVA 2020.09.07

자바/ wrapper Class

wapper Class -기본형 타입을 객체화 하도록 도와주는 클래스 기본형 타입은 객체화를 해줄 필요가 없다. 하지만 intinteger 나 String 타입은 객체화가 가능하기 때문에 클래스 타입이 아닌 wapper Class라고 불러주는게 맞다. wrapper class 기본형 타입 wrapper class byte Byte short Short int Integer long Long float Float double Double char Charater boolean Boolean void Void -wapperClass -> 기본형 타입 : 박싱(Boxing) -wapperClass Integer i = 10; //오토박싱(autoboxing) JDK 1.5 버전 이후 적용 int i1 = i...

JAVA 2020.09.04

java/ to String 주소값 출력 값 출력으로 오버라이드 하기

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 package self_Am; public class ToString { int data1 =10; int data2 =20; int data3 =35; int data4; public static void main(String[] args) { ToString to = new ToString(); System.out.println(to); System.out.println(to.data1); } } Colored by Color Scripter cs 결과 self_Am.ToString@51cdd8a 10 기본적으로 객체명을 출력할 때에는 (13행의 (to)뒤에)는 to String 이 생략되어 있다. 떄문에to라는 객체의 주소값..

JAVA 2020.09.03
반응형