Java
![[백준, Java] 9663번 : N-Queen](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fezf19t%2FbtrCcEmGJmn%2FAAAAAAAAAAAAAAAAAAAAAO714Z8qPgUcLXXKlXjnOfKLvaFvMW7zjHTkja9hWINo%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DJ4%252Ftn0UFCIY24%252FeNzhJAoJvThKY%253D)
[백준, Java] 9663번 : N-Queen
🔗 문제 링크 https://www.acmicpc.net/problem/9663 😮 문제 해결 방법 첫 번째 행부터 차례로 모든 배치에 퀸을 놓아보는 방식의 완전탐색 문제이다. 퀸을 배치하기 전에 이전 행에 놓인 퀸 들이 움직일 수 없는 위치에 놓아야 하기 때문에 행 마다 퀸을 배치하면서 이전 행의 퀸의 배치와 겹치지 않는지 판단하는 로직을 추가한다. 이전 행의 퀸들과 겹칠 수 있는 경우는 2가지가 있다. 이전 행들에 놓인 퀸의 열과 현재 놓을 퀸의 열이 동일한 경우 이전 행들에 놓인 퀸과 현재 놓을 퀸이 대각선에 존재하는 경우 동일한 행에 퀸이 놓이는 경우도 고려해야하지만, 재귀를 이용해 한 행 (depth)마다 퀸을 배치할 것이기 때문에 동일한 행에 두 개이상의 퀸이 놓이는 경우는 발생하지 않는다. ..
![[백준, Java] 18352번 : 특정 거리의 도시 찾기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FdWrdcU%2FbtrBYf1ZtMj%2FAAAAAAAAAAAAAAAAAAAAAO6VzbZ-obCwleXqj39m9r_I4ZfBmgPCp4YSoL9vnwRf%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3Dlpk4U3Cy%252FNiQhoLT6HiD3ZsXfXY%253D)
[백준, Java] 18352번 : 특정 거리의 도시 찾기
🔗 문제 링크 https://www.acmicpc.net/problem/18352 😮 문제 해결 방법 문제의 조건에서 최대 300,000개의 도시가 입력으로 주어질 수 있다고 명시했기 때문에, 인접행렬 방식이 아닌 인접 리스트 방식으로 해결해야한다. 시작 도시부터 도달할 수 있는 모든 도시에 대해 최단거리를 구하는 알고리즘은 “다익스트라"를 사용할 수 있다. 물론, 해당 문제에서도 다익스트라 알고리즘을 사용할 수 있지만, 각 도시간 거리가 1로 고정이 되어있기 때문에 BFS를 이용해서도 문제를 해결할 수 있다. 출발 도시를 시작으로 BFS를 구현한다. 연결된 도시 중 방문하지 않고, 현재 도시에서 거리에 +1 한 값보다 연결된 도시 거리가 멀다면 최단 거리로 갱신한다. 시작 도시로 부터 도달할 수 있는 ..
![[백기선님과 함께하는 Live Study] 8주차) 인터페이스](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fxkgec%2FbtrBOvo00dN%2FAAAAAAAAAAAAAAAAAAAAAHAvYXT_6jFFIFh5Lwe4eC4D-UMCYshyAALpOx6_XZdl%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DEXCNP8A668Et7HvUwJaZYKNj%252FC8%253D)
[백기선님과 함께하는 Live Study] 8주차) 인터페이스
✔️ 목표 자바의 인터페이스에 대해 학습하세요. ✔️ 학습할 것 (필수) 인터페이스 정의하는 방법 인터페이스 구현하는 방법 인터페이스 레퍼런스를 통해 구현체를 사용하는 방법 인터페이스 상속 인터페이스의 기본 메소드 (Default Method), 자바 8 인터페이스의 static 메소드, 자바 8 인터페이스의 private 메소드, 자바 9 💡 인터페이스 정의하는 방법 인터페이스(Interface)란 메소드에 대한 선언만 한 상태로 모든 메소드를 추상화로 정의한 상태를 말한다. 인터페이스를 정의하기 위해서는 interface 키워드를 이용하여 선언한다. 인터페이스는 반드시 상수와 추상 메소드만 사용이 가능하다. package com.livestudy.eighth; public interface Phone..
![[백준, Java] 1062번 : 가르침](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FvbGaE%2FbtrBLHxG9QF%2FAAAAAAAAAAAAAAAAAAAAAI3YNBkO3ML3jsjpCJf5WXv9uM29SH0bnEKoQvXdcb1W%2Fimg.gif%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DTrSMRXCPgmqWVYFrGbcQ8Fqg18c%253D)
[백준, Java] 1062번 : 가르침
🔗 문제 링크 https://www.acmicpc.net/problem/1062 😮 문제 해결 방법 문제에서 남극 단어의 시작과 끝은 anta, tica로 끝난다고 했기 때문에 a,n,t,i,c는 반드시 배워야 하는 글자이다. a,n,t,i,c를 포함해 남은 알파벳 중 k개를 조합한다. 조합한 알파벳을 남극 단어마다 해당 알파벳을 모두 포함하는지 판단하면서 배울 수 있는 단어를 체크한 후 현재 까지 최대로 배울 수 있는 단어 개수와 현재 배울 수 있는 단어 개수를 비교해서 갱신한다. a,n,t,i,c는 반드시 배워야 하는 글자이므로 K가 5보다 작다면 남극 단어를 배울 수 없기 때문에 0을 리턴한다. K가 5보다 크다면 이미 5개를 배웠기 때문에 a,n,t,i,c를 제외한 (K - 5)개의 글자를 백트래..
![[백기선님과 함께하는 Live Study] 7주차) 패키지](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcbmOaE%2FbtrBGMEqgEU%2FAAAAAAAAAAAAAAAAAAAAAAdokqBe8-R6fhmu2uTpSn-EtWFHIsgObwEgGPUGjrjO%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1759244399%26allow_ip%3D%26allow_referer%3D%26signature%3DVh0HQxyz9kB9kFaE5elrgNIyOPI%253D)
[백기선님과 함께하는 Live Study] 7주차) 패키지
✔️ 목표 자바의 패키지에 대해 학습하세요. ✔️ 학습할 것 (필수) package 키워드 import 키워드 클래스패스 CLASSPATH 환경변수 classpath 옵션 접근지시자 💡 Package 키워드 Package의 단어 정의를 보면 "An object or group of objects wrapped in ~ "라고 정의되어 있다. 어떤 것으로 오브젝트 혹은 그룹을 감싸는 것이다. 이를 자바에 대입해보면 "object or group of object"가 class가 된다. 즉, 자바의 Package는 하나 이상의 클래스를 묶어놓은 묶음으로 하나의 디렉토리(폴더)이다. 일반적으로 특징이나 비슷한 기능을 가진 클래스들을 하나의 패키지로 묶어 사용한다. ✔️ 이름 공간 (Namespace) 네임스페..