![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbM9j73%2FbtsEtlK2Ebh%2FQjoKKQpJZj9scAJlN2woxK%2Fimg.png)
문제 1005번: ACM Craft 첫째 줄에는 테스트케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같이 주어진다. 첫째 줄에 건물의 개수 N과 건물간의 건설순서 규칙의 총 개수 K이 주어진다. (건물의 번호는 1번부 www.acmicpc.net 핵심 풀이 이 문제는 건설해야 할 건물(W)을 지을 수 있는 최소시간을 구하는 문제이다. 건물을 짓는 순서가 있고 싸이클이 없는 그래프이므로 '위상 정렬'을 이용한다. 더 고려해야 하는 점은 건물을 짓는데 걸리는 시간이 있기 때문에, 선수 건물이 여러 개라면 그 중 가장 오래 걸리는 건물 시간에 맞춰야 한다. 즉 A -> C , B -> C라는 선후 관계가 있을 때 A 건물을 지을 때 30, B 건물을 짓는데 50이라면 50분 있다가 C건물을 지어야한..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FXovPL%2FbtsEnSPNR0u%2FaUnk4R8hHKCkfXg7XkWg3K%2Fimg.png)
배열 배열은 인덱스(index)와인덱스에 대응하는 데이터들로 이루어진 연속적인 자료 구조로서, 같은 종류의 데이터들이 순차적으로 저장된다. 자바에서의 배열 생성은 C/C++와 달리 2단계로 이루어진다. 배열에 대한 레퍼런스 변수 선언 배열 생성 - 배열의 저장공간 할당 1. 배열에 대한 레퍼런스 변수 선언 int intArray []; 배열 공간을 할당되지 않으며 레퍼런스 변수 intArray만 생성된다. intArray는 배열 공간에 대한 주소 값을 가지며 그 자체가 배열은 아니다. 이때 intArray의 값은 null이다. 이처럼 배열 주소를 레퍼런스라고 부르며, 주소값을 가지는 변수를 레퍼런스 변수라고 한다. 2. 배열 생성 배열 생성은 데이터를 저장할 배열 공간을 할당받는 과정이다. 반드시 new..
자바의 데이터 타입 ▶︎ 기본 타입 (8가지) 기본 타입의 크기가 정해져 있다 자바는 플랫폼 독립적인 언어이므로 모든 플랫폼에서 실행될 수 있도록 데이터의 크기가 항상 일정하다. 하지만 C인 경우 CPU의 처리 능력이나 운영체제에 따라 데이터가 차지하는 메모리 크기가 다르다. int형이 2바이트 일수도, 4바이트일 수도 있다는 것이다. 논리 타입 : boolean 1비트. JVM에 따라 1비트가 아닐수 있다. 문자 타입 : char 무조건 2바이트, Unicode 사용 Unicode는 최대 4바이트까지 표현될 수 있지만 UTF-16 인코딩 방식을 사용하여 2바이트로 표현될 수 있기 때문이다. 정수 타입 : byte 1바이트, -128 ~ 127 정수 타입 : short 2바이트 정수 타입 : int 4..
![article thumbnail](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FcudUFd%2FbtsEmtirC2d%2F3kW0ZB938NykRc8bzFm0g1%2Fimg.png)
문제 2252번: 줄 세우기 첫째 줄에 N(1 ≤ N ≤ 32,000), M(1 ≤ M ≤ 100,000)이 주어진다. M은 키를 비교한 회수이다. 다음 M개의 줄에는 키를 비교한 두 학생의 번호 A, B가 주어진다. 이는 학생 A가 학생 B의 앞에 서야 한다는 의 www.acmicpc.net 핵심 풀이 위상 정렬을 이용해야하는 문제이다. 왜 위상 정렬을 이용하여 해결해야 하는가? 이 문제는 일부 학생들의 키 순서가 주어졌을 때, 전체 학생을 키 순서대로 줄을 세운 결과를 반환해야 한다. 즉 일분 학생간의 순서를 지키며, 전체 학새생을 줄 세워야한다. 위상정렬은 사이클이 없는 방향 그래프에서 노드 순서를 찾는 알고리즘이다. 예를 들어 과목의 선수과목이 있는 과목들이 주어질 때 선수과목을 고려해서 수강 순..
![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 (링킹 과정 없..