문제링크 📝 문제 고고학자인 "튜브"는 고대 유적지에서 보물과 유적이 가득할 것으로 추정되는 비밀의 문을 발견하였습니다. 그런데 문을 열려고 살펴보니 특이한 형태의 자물쇠로 잠겨 있었고 문 앞에는 특이한 형태의 열쇠와 함께 자물쇠를 푸는 방법에 대해 다음과 같이 설명해 주는 종이가 발견되었습니다. 잠겨있는 자물쇠는 격자 한 칸의 크기가 1 x 1인 N x N 크기의 정사각 격자 형태이고 특이한 모양의 열쇠는 M x M 크기인 정사각 격자 형태로 되어 있습니다. 자물쇠에는 홈이 파여 있고 열쇠 또한 홈과 돌기 부분이 있습니다. 열쇠는 회전과 이동이 가능하며 열쇠의 돌기 부분을 자물쇠의 홈 부분에 딱 맞게 채우면 자물쇠가 열리게 되는 구조입니다. 자물쇠 영역을 벗어난 부분에 있는 열쇠의 홈과 돌기는 자물쇠를..
record 란 무엇일까요? 불변(immutable) 데이터 객체를 쉽게 생성할 수 있도록 하는 새로운 유형의 클래스로 일반 class와 다르게 생성자, getter, hashCode(), equals(), toString() 메소드를 제공해줍니다. DTO처럼 데이터를 운반하는 특성의 클래스를 구현할 때 반복적으로 작성했던 부분을 없애줍니다. JDK14 버전에서 preview로 등장하여 JDK16 버전에서 정식 스펙으로 포함되었습니다. 어떻게 사용하는 걸까요? 선언 방식 record 레코드명(컴포넌트1, 컴포넌트2) {} class를 사용한 DTO 객체 public class Person { private final String name; private final int age; public Person..
타입 형 변환 int x = (int) 10.0; 대입 연산자를 기준으로 오른쪽 값을 왼쪽 값에 맞추는 것이 기본 규칙이다. 10.0의 기본 타입은 double인데 왼쪽 타입이 int 이므로 캐스팅을 통해 타입을 맞춰주게 된다. 이 타입 형변환을 객체간에서도 구현해줄 수 있다. Strongly typed language 자바는 데이터 타입을 미리 정의해서 사용하고 한 번 정의된 데이터 타입은 프로그램 종료까지 변하지 않는 강한 타입의 언어이다. 프로그램 개발에 있어서 명확함과 구체성을 제공한다는 장점과 유연성이 제약된다는 단점이 있다. 여기에 대한 예외가 하나 존재하는데 그것이 객체간 타입 형변환을 가능하게 하는 지점이다. 객체간 타입 형변환 상속 관계에서 자식 클래스가 부모 클래스 타입으로 참조되는 것..
제네릭이란?! 제네릭은 클래스 내부에서 사용할 데이터 타입을 외부에서 지정하는 기법이다. ArrayList list = new ArrayList(); 주로 Collection Framwork를 선언할 때 꺽쇠 괄호() 를 함께 사용하는데 그 꺽쇠 괄호가 제네릭이다. 괄호 안에 타입을 쓰면 해당 컬렉션의 자료형 타입이 지정되는데 위 예제의 경우 list에는 Integer 타입만 저장할 수 있게 된다. 제네릭에 대해 공부하기 전에는 변수에 타입을 지정하듯이 컬렉션에 타입을 지정하는 것이라고 추측하였었는데 맞는 말이긴 하지만 변수 타입보다 더 깊은 내용이 있다. String[] str = new String[5]; ArrayList list = new ArrayList(5); 제네릭 타입 매개변수 정의 제네릭..
개요 배열은 프로그래밍이나 알고리즘을 풀 때 항상 사용하게 되는 자료형인데 사용할 때마다 새로운 것을 알게되는 것 같다. 기초이자 너무나 중요한 요소이기 때문에 새로운 것을 알게될 때마다 업데이트를 하고 두고두고 찾아보고자 개념 정리를 해보기로 하였다! 배열 선언 & 초기화 배열을 선언할 때 미리 타입과 크기를 지정해주어야 한다. // int 형 배열 선언 & 초기화 int[] score = new int[5]; // int 타입의 값 5개가 저장될 빈 공간 생성 // 초기화 score[0] = 10; score[1] = 20; score[2] = 30; score[3] = 40; score[4] = 50; // for문으로 배열을 순차적으로 순회에 값을 넣어주는 방법도 있다. for(int i = 0;..
- Total
- Today
- Yesterday
- BFS
- CS
- 프로그래머스
- 자바bfs
- java
- SQLD
- Queue
- SQL
- 해시맵
- JPA
- 자바스크립트
- Nest
- JavaScript
- Algorithm
- dfs
- 스프링부트
- Spring
- 형변환
- DP
- 자바
- Comparator
- 백준
- 스프링
- 자바dp
- 알고리즘
- 리액트
- 자바트리
- 타입스크립트
- 정렬
- 이분탐색
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 28 | 29 | 30 | 31 |