| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 다이렉트 레퍼런스
- dfs
- BFS
- java
- 2026 AWS SAA-C03
- getreference
- 코딩테스트
- 백준
- stop the world
- 스프링
- 어플리케이션 클래스 로더
- 딕셔너리
- aws saa-c03
- python list method
- 파이썬 문자열 메서드
- 파이썬
- python
- 알고리즘
- Spring
- 심볼릭 레퍼런스
- 클래스 로더 계층
- 플랫폼 클래스 로더
- 컴포넌트 스캔
- 객체지향
- 파이썬 리스트 메서드
- 부트스트랩 클래스 로더
- AWS SAA-C03 합격후기
- 스프링 컨테이너
- 자료구조
- 자바
- Today
- Total
목록2023/12 (18)
클라우드 낚시꾼
이 글에서는 JAVA에서 변수의 종류와 초기화, Null에 대해 알아볼 것이다. 변수의 종류 자바에서는 변수의 선언 위치가 변수의 종류를 결정한다. 멤버 변수 = 클래스 영역에서 선언된 변수 클래스 변수 = static 키워드가 있고, 클래스가 메모리에 올라갈 때 생성 인스턴스 변수 = static 키워드가 없고, 클래스로부터 인스턴스가 생성될 때 생성 지역 변수 = 블럭 내부에서 선언된 변수 변수 선언문이 수행되었을 때 생성 매개변수도 지역 변수다 클래스 변수와 인스턴스 변수 public class Student { // 클래스 변수 static int amountOfStudent; // 학생의 수 // 인스턴스 변수 String name; int age; int grade; } 클래스 변수 저장공간의..
많은 사람들이 기본형과 참조형에 대해서는 다 알고 있다고 생각하여 휙휙 넘어간다. 하지만, 그대는 정말 다 알고 있는가? 필자는 확신이 없기에 이 글에서 기본형과 참조형에 대해 최대한 간단하고 명료하게 핵심만 짚고 넘어가볼라고 한다. 기본형 VS 참조형 - 무엇을 저장하는가? 기본형: int, long, double, boolean처럼 변수에 사용할 값을 직접 넣을 수 있는 데이터 타입을 기본형이라 한다. 참조형: Movie movie1, Movie[] movies와 같이 데이터에 접근하기 위한 참조(주소)를 저장하는 데이터 타입을 참조형이라 한다. 객체와 배열이 대표적인 참조형이다. 객체는 .(dot)을 통해서 메모리 상에 생성된 객체를 찾아간다. 배열은 []을 통해서 메모리 상에 생성된 배열을 찾아간..
이번 글에서는 JAVA에서 어떻게 클래스를 통해 객체를 생성하고, 내부적으로는 무슨 일이 발생하는 지에 대해 알아볼 것이다. 먼저, 개념을 알아보자. 클래스, 객체, 인스턴스 클래스: 객체의 설계도로서 객체의 특징(멤버 변수)과 기능(메서드)을 포함하고 사용자 정의 타입으로 불린다 (ex) 아이폰 설계도 객체: 클래스로부터 만들어져 메모리에 존재하는 실체 (ex) 생성된 아이폰 인스턴스: 클래스로부터 만들어진 실체로서 특정 클래스로부터 생성된 객체를 의미 (ex) 생성된 아이폰 객체, 인스턴스는 클래스로부터 만들어진 실체라는 점만 기억하면 된다. 인스턴스는 객체보다 조금 더 클래스와의 관계를 강조하는 용어이다. 아래는 그 예시다. Student 클래스를 인스턴스화 하여 student1 객체를 생성 stu..
제한 조건과 설계 미로 문제처럼 M*N 격자 그래프 문제이므로 BFS를 사용한다. 1은 검은색 격자이기에 전류가 잘 통하지 않고, 0은 흰색 격자로 전류가 잘 통한다. 0행에서 M-1행에 도달하는 경로가 있는 지를 물어보는 문제다. 자연어 알고리즘 정보를 입력 받고 그래프를 생성한다. 0행에서 값이 0인 좌표가 시작 지점이다. 이 지점들을 starts 리스트에 저장한다. starts 중 한 지점으로 BFS 탐색을 시도 했을 때 m-1 행에 도달하면 YES를 출력하고 프로그램을 종료한다. starts의 모든 지점을 시작 지점으로 BFS를 반복한다. 3번에서 YES를 출력하고 종료되지 않았다면 NO를 출력하고 프로그램을 종료한다. 코드 import sys from collections import deque..
제한 조건과 설계 시간 제한이 2초지만 노드가 30만개라서 좀 불안하다. 방향 그래프다. 시작 노드로부터 모든 각 노드의 거리를 구하는 것이므로 BFS가 좋아보인다. 자연어 알고리즘 정보를 입력 받아 그래프를 생성한다. 시작 정점으로 BFS 탐색을 시도한다. queue에서 front 노드를 dequeue한다. dequeue된 노드의 인접한 노드 중에서 아직 방문하지 않은 노드가 있다면 queue에 인접 노드를 enqueue 한다. 시작 노드로부터 인접 노드의 거리 = 시작 노드로부터 이전 노드(dequeue된 노드)의 거리 + 1 queue가 빌 때까지 위의 과정을 반복한다. 선형 탐색으로 nodes_dist에서 요소 값이 k(거리)인 index를 ans리스트에 append 한다. 답에 해당하는 노드들을..
자바는 객체 지향 언어이다. 즉, 자바 프로그램은 객체들의 상호작용이다. 그렇기에 자바에서 클래스와 객체 개념은 정말 중요하다. 이 글에서는 데이터 저장 형태의 발전 과정과 이에 따른 클래스의 필요성을 알아보겠다. 변수에서 배열로의 발전 변수란 하나의 데이터를 저장할 수 있는 공간이고 배열은 같은 타입의 변수 여러 개를 연속적으로 생성하여 한 뭉텅이로 다루는 데이터 저장 형태이다. 배열은 변수의 단점 2가지를 보완하였다. 학생 1000명에 대한 정보를 변수로 다룬다면, 변수 1000개를 여러 줄의 코드로 생성해야 한다. -> 배열은 변수 1000개를 코드 1줄로 생성한다. 학생 1000명 중 567번째 학생에 접근할 때 개발자가 직접 찾아야 한다. -> 배열은 인덱스를 이용해 특정 변수에 쉽게 접근 가능..
제한 조건과 설계 1. 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. -> 노드가 최대 100개 이므로 메모리와 시간 제한이 널널하다. 2. 탐색 시작 노드에서 특정 노드에 도달하는 데 까지 거리를 묻는 문제이다. -> DFS 자연어 알고리즘 정보를 입력 받는다. 시작 노드와 탐색 노드를 설정하여 DFS 탐색을 시도한다. DFS 탐색 다음 노드로 이동할 때 마다 이동 거리를 1 증가시킨다. 특정 노드에 도달하면 그때 까지의 이동 거리를 출력하고 프로그램을 종료한다. 노드를 재방문할 때는 이동 거리를 1 감소시킨다. 3번에서 특정 노드에 도달하지 못했다면 -1을 출력하고 종료한다. 코드 import sys input = sys.stdin.readline node..
제한 조건과 설계 N이 2000이하이므로 DFS를 쓸 수 있음. 무방향 그래프. 시간 제한과 메모리 제한도 넉넉하다. DFS 탐색으로, 문제의 조건을 만족 시켜야 한다. 자연어 알고리즘 그래프 생성, 방문 테이블, 노드 목록 생성 각각의 노드를 시작 지점으로 DFS 탐색 DFS 탐색 1) 탐색 노드 방문 처리 후, route에 탐색 노드 push 2) route의 길이가 5이면 -> 1을 출력하고 종료 3) 인접 노드 중 아직 방문하지 않은 노드가 있다면 -> 그 인접 노드로 DFS 탐색 4) 인접 노드 모두를 방문했다면 -> route에서 현재 탐색 노드를 pop 한 뒤, 미방문 처리 1 ~ 3 이 종료될때 까지 반복 0 출력 후 종료( ABCDE 관계가 나왔다면 3-(2)에서 종료) 코드 impor..