![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbI7NhZ%2FbtsEnYaTwsr%2FRvgd8uA39e6eNWZdJUXRJ0%2Fimg.jpg)
본 포스팅은 '명품 JAVA Programming (개정4판)- 황기태 저' 책을 바탕으로 작성되었습니다.😀 프로그래밍 언어 기게어 어셈블리어 고급언어 - JAVA 언어의 진화 기계어 ➞ 어셈블리어 ➞ Fortran(수학 전용 언어) ➞ C ➞ C++ C 언어 왜 생겼을까? (1972) 유닉스라는 운영체제를 개발하기 위해 만든 언어 : 절차 지향 언어 시대 C++ 왜 생겼을까? (1983) PC가 생기면서 규모가 커져 만들고 관리하는 것이 너무 힘들어짐. 객체 지향언어 시대 JAVA 왜 생겼을까? (1995) 나온 이유 : C++의 어떤 문제를 해결하기 위해 등장 (어떤 문제인지 아래에서 기술) C++의 모양을 빌어 등장. 조상이 C++이다 컴파일 방식 자바 : .Java ➞ .class (링킹 과정 없..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FsVTqC%2FbtsD5wfvUJc%2F90PaWkq3w6dM3B7bElqHeK%2Fimg.png)
✓ 문제 18352번: 특정 거리의 도시 찾기 첫째 줄에 도시의 개수 N, 도로의 개수 M, 거리 정보 K, 출발 도시의 번호 X가 주어진다. (2 ≤ N ≤ 300,000, 1 ≤ M ≤ 1,000,000, 1 ≤ K ≤ 300,000, 1 ≤ X ≤ N) 둘째 줄부터 M개의 줄에 걸쳐서 두 개 www.acmicpc.net 그래프들의 단방향 정보가 주어지고 출발 도시로부터 최단 거리가 X인 다른 정점들을 찾는 문제이다. 단순히 거리가 X인 것이 아니라 최단거리여야 한다. ✓ 풀이 처음에는 DFS탐색을 이용하여 dpeth가 X일 때를 찾았다. 하지만 문제는 최단거리를 구해야 된다는 점이었다. 최단거리를 갱신해주기 위해서는 결국 모든 탐색을 다 해줬어야 했다. 비효율적인 것 같아서 더 효율적인 방법을 찾았..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FdnX5VG%2FbtsCIE6pX5v%2FEi7Vg14hZU9uSgVYSFBve1%2Fimg.png)
9934번: 완전 이진 트리 상근이는 슬로베니아의 도시 Donji Andrijevci를 여행하고 있다. 이 도시의 도로는 깊이가 K인 완전 이진 트리를 이루고 있다. 깊이가 K인 완전 이진 트리는 총 2K-1개의 노드로 이루어져 있다. (아래 www.acmicpc.net 1. 알고리즘 완전 이진 트리 2. 해결책 중위 순회의 중심이 루트인 것을 이용 3. 접근한 방법 해야될 일 : 중심 순회 결과로 트리 구성하라 중위 순위 결과를 가지고 알아낼 수 있는것이 뭐지? DFS 탐색과 결과가 같다. 하지만 루트는 어떻게 알아내고, 트리관계는 어떻게 알아내지? -> 불가능 인덱스를 이용할까. 이 문제는 완전 이진 트리. 자식 노드는 부모 인덱스 i의 2_i, 2_i+1이다. 부모 인덱스는 어떻게 구하지? 이 문제..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2F9X1NB%2FbtsB3vIrl49%2FkcXknT55KcSpptJumBuxGk%2Fimg.png)
1. 📄 문제 14502번: 연구소 인체에 치명적인 바이러스를 연구하던 연구소에서 바이러스가 유출되었다. 다행히 바이러스는 아직 퍼지지 않았고, 바이러스의 확산을 막기 위해서 연구소에 벽을 세우려고 한다. 연구소는 크 www.acmicpc.net - 반드시 3개의 벽을 세워서 확보할 수 있는 안전 구역의 최댓값을 구하기 2. 🤔 어떻게 풀까? 문제를 처음 봤을 때 대체 어떠한 방법으로 벽을 세울 위치를 정해야될지 난감했다. 바이러스를 중심으로 한다해도 어렵고, 벽을 중심으로 해도 어렵고.. 모르겠다가 넉넉한 시간과 작은 N과 M의 개수를 보고 완전 탐색을 생각했다. 그후 과연 시간 조건을 충족할 수 있을지 계산을 해보았고 아주 넉넉했다. 그래서 벽을 세울 수 있는 모든 경우의 수로 벽을 세우고, BFS ..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FtKaKO%2FbtsBgwJ8OV0%2F8CLXJoXVP6EVIWSEDb0YLK%2Fimg.png)
1. 🍅 문제 1654번: 랜선 자르기 첫째 줄에는 오영식이 이미 가지고 있는 랜선의 개수 K, 그리고 필요한 랜선의 개수 N이 입력된다. K는 1이상 10,000이하의 정수이고, N은 1이상 1,000,000이하의 정수이다. 그리고 항상 K ≦ N 이다. 그 www.acmicpc.net 2. 🤔 어떻게 풀까? 이 문제는 이분탐색의 바이블같은 문제이다. 이분탐색 막 처음 배울 때 이 문제를 여러 번 봤었다. 나한텐 DP의 계단 오르기 문제와 같은 느낌이다. 아무튼! 어떻게 풀지 고민을 해보자. 문제를 요약하면 구해야 되는 것은 '주어진 K개의 랜선을 잘라 같은 길이의 n개 이상의 랜선을 만들 때 자를 수 있는 랜선의 최대 길이는?'이다. 결국 임의로 랜선의 길이를 설정하여 K개의 랜선들을 모두 잘라보는 ..