Annotation, Spring Framework를 공부하다 Reflection이라는 단어를 접해보셨을 겁니다. 주로 사용처가 프레임워크(JUnit, Spring)라 태그는 Spring으로 달아두었지만 Java 기술입니다. #1 Reflection? Reflection은 구체적인 클래스를 몰라도 그 클래스의 메서드, 타입, 변수들에 접근할 수 있는 자바 API 아래처럼 Animal을 상속받은 Duck 클래스를 만들었습니다. public class Animal { } public class Duck extends Animal{ private final String name; private int age; public Duck(String name, int age) { this.name = name; th..
소수점 고정이 필요한 경우가 있습니다.(ex : 2자리 고정) DecimalFormat 을 사용해 고정하는 방법이 있어 사용해 봤습니다. public class Test { public static void main(String[] args) { // 소수점 두자리 DecimalFormat decimalFormat1 = new DecimalFormat("###.00"); System.out.println(decimalFormat1.format(10));//10.00 System.out.println(decimalFormat1.format(10.0));//10.00 System.out.println(decimalFormat1.format(10.45));//10.45 // 소수점 세자리 DecimalForm..
리눅스 단축키는 매일 사용하지 않으니 잊어버려 간단하게 정리했습니다 :) # man 터미널에서 지원하는 레퍼런스 man [option] : 찾고싶은 option 검색 man -w [option] : 실행 시에 출력되는 [메뉴얼 페이지 파일 위치] 검색 # pwd 현재 위치를 확인하는 명령어 # mkdir 디렉토리 생성 # ls 폴더나 파일의 목록을 출력하는 명령어 ls -l : 파일의 형식을 표시함 ls -a : all 단축어 숨긴 파일 까지 표시함 ls -la : 위 기능들의 함 Yonghyeon-MacBookPro:~ a000$ ls -l total 272 drwxr-xr-x 8 a000 staff 256 1 6 2022 AndroidStudioProjects drwxr-xr-x 3 a000 staf..
#1 인터페이스 정의 인터페이스는 자바에서 가장 추상화된 타입입니다. 추상 클래스보다 더 추상화되어있어 추상 메서드와 다른 몇 개의 요소로 구성되어 있습니다. 인터페이스는 추상 클래스처럼 구현된 메서드나 인스턴스 변수가 존재할 수 없습니다. 인터페이스 구성 추상 클래스 JAVA 8부터 default 제어자를 통한 초기 구현 가능 상수 #2 인터페이스 구현 인터페이스에 정의된 추상 메서드를 완성하는 것을 구현이라 말합니다. 인터페이스는 추상 클래스처럼 인터페이스만으로 객체를 생성할 수 없습니다. 형식은 클래스명 뒤에 implements를 붙여 추상 메서드를 구현하면 됩니다. 🔥 인터페이스 내에 존재하는 메서드는 무조건 "public abstract"로 선언되며, 이를 생략할 수 있습니다. 🔥 인터페이스 내..
#1 상속 상속은 기존의 클래스를 재활용해 새로운 클래스를 작성하는 것입니다. 재사용에 유용합니다. java에서 상속은 "클래스명 extends 부모 클래스"처럼 extends 키워드를 사용합니다. java는 다중 상속을 허용하지 않습니다. 다중 상속은 하위 클래스의 코드를 복잡하게 만들어 프로그램을 취약하게 만들고, 버그를 유발할 수 있으며 유지 보수하기 어렵게 만들기 때문입니다. (is-a) 관계에 사용합니다. 동물 -> 포유류 -> 늑대 모든 클래스는 Object 클래스의 자식 클래스입니다. public class 부모클래스 { } public class 자식클래스 extends 부모클래스 { } "super"키워드 자식 클래스에서 부모 클래스의 멤버를 참조할 때 사용합니다. this는 자기 자신을..
#1 클래스 정의하는 방법 public class Coke { int price; String brand; ... } #2 객체 만드는 방법 우선 객체가 무엇인지 알고 있나요? 더보기 객체(Object)란 물리적으로 존재하거나 추상적으로 생각할 수 있는 것 중에서 자신의 속성을 가지고 있고 다른 것과 식별 가능한 것을 말합니다. 클래스를 만들었다면 new키워드를 사용해 객체를 생성할 수 있습니다. //클래스이름 객체참조변수이름 = new 클래스이름(); Coke cocaCola = new Coke(); "new"는 새로운 객체를 생성해 클래스 변수에 할당해 주는 키워드입니다. 이를 클래스의 인스턴스 라 말합니다. Coke 클래스의 구성요소를 갖춘 객체 하나를 힙에 생성하고 참조하는 주소 값을 스택에 저장..
https://www.acmicpc.net/problem/7562 7562번: 나이트의 이동 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 www.acmicpc.net #1 문제 번호 : 7562 #2 문제 체스판 위에 한 나이트가 놓여져 있다. 나이트가 한 번에 이동할 수 있는 칸은 아래 그림에 나와있다. 나이트가 이동하려고 하는 칸이 주어진다. 나이트는 몇 번 움직이면 이 칸으로 이동할 수 있을까? #3 입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ ..
graph를 탐색하는 방법은 2가지 방법이 있습니다. 📌 graph는 노드(Node)와 그 노드를 연결하는 간선(edge)을 하나로 모아 놓은 자료구조입니다. 그래프 탐색은 하나의 정점에서 시작해 마지막 정점까지 규칙을 가지고 한 번씩 방문하는 것을 말합니다. DFS : 깊이 우선 탐색 (Depth First Search) 루트 노드 (또는 다른 임의의 노드)에서 시작해 다음 분기(branch)로 넘어가기 전에 해당 분기를 완벽하게 탐색하는 방식을 말합니다 DFS 특징 자기 자신을 호출하는 순환 알고리즘 형태를 가지고 있다. (스택으로 구현도 가능하다.) 노드를 방문했는지 검사해야 한다. (검사하지 않으면 무한루프에 빠짐) BFS : 너비 우선 탐색 (Breath First Search) 루트 노드 (또..
https://www.acmicpc.net/problem/10816 10816번: 숫자 카드 2 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에는 숫자 카드에 적혀있는 정수가 주어진다. 숫자 카드에 적혀있는 수는 -10,000,000보다 크거나 같고, 10, www.acmicpc.net #1 문제 번호 : 10816 #2 문제 숫자 카드는 정수 하나가 적혀져 있는 카드이다. 상근이는 숫자 카드 N개를 가지고 있다. 정수 M개가 주어졌을 때, 이 수가 적혀있는 숫자 카드를 상근이가 몇 개 가지고 있는지 구하는 프로그램을 작성하시오. #3 입력 첫째 줄에 상근이가 가지고 있는 숫자 카드의 개수 N(1 ≤ N ≤ 500,000)이 주어진다. 둘째 줄에..
https://programmers.co.kr/learn/courses/30/lessons/42577 코딩테스트 연습 - 전화번호 목록 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조 programmers.co.kr #1 문제 전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다. 전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다. 구조대 : 119 박준영 : 97 674 223 지영석 : 11 9552 4421 전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매..
https://programmers.co.kr/learn/courses/30/lessons/42576 코딩테스트 연습 - 완주하지 못한 선수 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수 programmers.co.kr #1 문제 수많은 마라톤 선수들이 마라톤에 참여하였습니다. 단 한 명의 선수를 제외하고는 모든 선수가 마라톤을 완주하였습니다. 마라톤에 참여한 선수들의 이름이 담긴 배열 participant와 완주한 선수들의 이름이 담긴 배열 completion이 주어질 때, 완주하지 못한 선수의 이름을 return 하도록 solution 함수를 작성해주세요..
https://www.acmicpc.net/problem/2630 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net #1 문제 번호 : 2630 #2 문제 아래 과 같이 여러 개의 정사각형 칸들로 이루어진 정사각형 모양의 종이가 주어져 있고, 각 정사각형들은 하얀색으로 칠해져 있거나 파란색으로 칠해져 있다. 주어진 종이를 일정한 규칙에 따라 잘라서 다양한 크기를 가진 정사각형 모양의 하얀색 또는 파란색 색종이를 만들려고 한다. 전체 종이의 크기가 N×N(N=2k, k는 1 이상 7 이..
- Total
- Today
- Yesterday