| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
- 알고리즘
- 멀티스레드
- 현대오토에버 코딩테스트
- 개발
- 네트워크
- 모바일
- CKLU
- 삼성SW테스트
- 백준 알고리즘
- 금융IT
- 안드로이드
- dfs
- 조합
- dp
- Android
- Java
- 익명클래스
- 너비탐색
- 언더라이터
- IT
- 재귀함수
- 삼성sw문제
- 프로그래머스
- backjoon
- 자바
- 다이나믹 프로그래밍
- BFS
- 백준
- 익명객체
- 데이터베이스
- Today
- Total
목록전체 글 (237)
Limky 삽질블로그
다익스트라 최단거리 알고리즘(Dijkstra) 다익스트라 알고리즘은 워낙 유명하죠 ㅎㅎ 다익스트라 알고리즘은 그래프에 있어서 탐색 시작 노드에서 탐색할 노드까지의 최단거리를 구하는 알고리즘입니다. 다익스트라 알고리즘은 실생활에서도 많이 쓰입니다. 지하철 최단거리 노선을 알려준다거나, 네비게이션 최단 경로를 알려주는 등 굉장히 활용도가 높은 알고리즘 입니다. 일단 노드간 가중치가 있어 최단거리를 구할 수 있습니다. 연결되 노드간 가중치의 합이 최단거리라고 할 수 있기 때문이죠. 아래 전체소스에 주석으로 상세히 적어놓았으나, 몇가지 포인트는 알고있어야 합니다. 원리는 다음과 같습니다. 경로를 통해 지나온 노드간 가중치들의 합이 가장 작은 값을 계속 갱신하며, 최단거리 가중치 합을 구하는 것입니다. 예를 들어..
백준 DFS 문제#2606 - 바이러스(Virus) https://www.acmicpc.net/problem/2606 사용한 개념 DFS깊이탐색을 이용했습니다.문제를 보면, 결국 무조건 1과 연결되어 있는 컴퓨터 갯수를 새는 것입니다. 컴퓨터 1과 연결되어 있으면 계속 깊이탐색을 해서 연결된 컴퓨터 갯수를 카운트하면 답은 쉽게 나옵니다. 컴퓨터 1과 연결되어있지 않는 또 다른 네트워크 영역은 신경쓸 필요도 없습니다. 따라서 소스에서 보면 알 수 있듯이 DFS(1)을 주어 무조건 시작은 1번 컴퓨터에서 시작함을 알 수 있습니다. DFS 기본 개념을 이해하면 쉽게 풀수있고 DFS를 잘 모르면, 어렵습니다.저는 기본적으로 인접리스트 방식의 DFS 깊이탐색을 했습니다.혹, DFS 기본개념을 모르시면 아래 링크에..
1. 입출력 함수 사용시 주의사항 1 - 타입 별로 입력을 받는 방법 1) int를 입력 받을 때는 nextInt 메서드를 이용한다. public class StandardIO { public static void main(String[] args) throws IOException { //int를 입력 받을 때는 nextInt 메서드를 이용한다. Scanner sc = new Scanner(System.in); int a,b; a = sc.nextInt(); b = sc.nextInt(); System.out.println(a+" "+b); } } 입력 : 10 20 결과 : 10 20 2) char를 입력 받을 때는 (char)System.in.read 메서드를 이용한다. public class St..
백준 DFS 문제 #2667 - 단지번호붙이기 https://www.acmicpc.net/problem/2667 사용한 개념 1) DFS 저는 깊이탐색을 사용했습니다. 우선, 2차원 배열에서 0이 아닌 1인 경우에 깊이탐색을 시작하여 인접해있는 1을 모두 찾게합니다. 그 다음 다시 탐색을 이어가 0이 아닌 1인경우 다시 깊이탐색을 시작합니다. 여기서 달라지는 점은, 이미 탐색을 했다라는 표시를 하기 위해 임시 변수 값이 CNT의 값을 증가시켜 해당 값으로 매핑시켜 표시합니ㅁ다. 따라서.. 1 1 0 0 0 1 0 0 0 0 0 0 0 1 1 1 1 0 1 1 0 1 0 0 1 인 경우, 2 2 0 0 0 2 0 0 0 0 0 0 0 3 3 4 4 0 3 3 0 4 0 0 3 위와 같이 매핑되는 것입니다...
*선행지식 2018/11/10 - [전공지식/Network] - [Network] IP주소란? (IP클래스를 이해하기 전 IP주소에 대해서 먼저 아셔야 이해하기 쉽습니다.) 1) IP주소의 클래스란? 지난시간 IP주소에 대해 배웠는데 잠시 복습하면, IP주소는 32 자리 이진수로 구성되어 있고 이 주소는 십진수로 표현되는데 옥테드 당 ' . ' 을 찍어 구분한다고 했습니다. 또한, 하나의 네트워크안에 IP들은 네트워크 영역은 같아야하고, 호스트 IP는 서로 달라야 통신이 가능하다고 했습니다. 예를 들어 203.240.100.1 에서 203.240.100 은 네트워크 영역이고 1 은 호스트 IP라는 사실을 알 수 있습니다. 여기서 어떻게 네트워크 주소와 호스트 주소를 구분할 수 있을까요? 바로 클래스 때문..
1) IP주소란? IP주소란 무엇일까요? 네트워크 환경에서 컴퓨터(노드)간 통신하기 위해 각 컴퓨터에 부여된 네트워크 상 주소라고 생각하면 됩니다. 설명을 위해 우선 내 컴퓨터의 IP주소를 알아볼까요? 윈도우 검색창에 CMD를 치시고 명령프롬프트 창을 열어, ipconfig라는 명령어를 치면 아래와 같은 나의 IP정보가 나옵니다. IPv4주소가 곧 내 컴퓨터의 IP주소입니다. 192.168.1.2 이네요~여기서 네트워크 주소는 192.168.1 까지이고!! 2는 나만의 호스트 IP라고 합니다.(서브넷마스크, 기본게이트웨이는 이후 설명해드리겠습니다~) 쉽게 예를 들어 보겠습니다. 경기도 의왕시 오전동 A아파트 103동 101호 라는 주소가 있습니다. 여기서 경기도 의왕시 오전동 A아파트 103동 까지가 네..
*선행지식 2018/11/10 - [전공지식/Network] - [Network] IP주소란? 2018/11/11 - [전공지식/Network] - [Network] IP주소 클래스(A,B,C class)란? 1) 서브네팅이란? (Subnetting) 서브넷마스크를 알기 위해선 먼저 서브네팅 개념을 이해해야합니다. 서브네팅은 "네트워크 관리자가 네트워크 성능을 향상시키기 위해, 자원을 효율적으로 분배하는 것입니다. 여기서 자원을 효율적으로 분배한다는 것은 네트워크 영역과 호스트 영역을 분할 하는 것이라고 생각하면 됩니다." 네트워크적인 측면에서 말하자면, 너무 큰 브로드캐스트 도메인은 네트워크 환경에서 패킷전송을 느리게하고 성능저하를 발생시킵니다. 따라서 네트워크를 쪼개서 통신 성능을 보장하는 것입니다...
디스크 스케줄링이란?(Disk Scheduling) 일반적으로 컴퓨터는 데이터를 저장할때, 순차적으로 하드웨어 디스크에 저장하지 않는다. 그때 그때 필요에 따라 상황에 맞게! 데이터를 저장하기 때문에 데이터를 찾기 위해선, 산재되서 저장된 데이터를 찾아와야 한다. 이때, 어떻게 효율적으로 산재된 데이터를 액세스 할 것인가에 대한 고민과 방법을 디스크 스케줄링이라 한다. 디스크 스케줄링 목표 디스크 스케줄링은 디스크 스케줄러가 실행한다. 디스크 스케줄러는 몇가지 목표를 가지고 데이터를 액세스한다. 1. 하드 디스크 검색으로 낭비되는 시간을 최소화 2. 특정한 프로세스의 입출력 요청의 우선순위를 정함3. 디스크 대역을 실행중인 각 프로세스에 할당4. 정해진 기한까지 요청을 처리 디스크 스케줄링 종류 그럼 대..