목록CodingTest (432)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dqgUMG/btrXnIo0Ono/w3KxSUjhsTRjqE25mQxZz1/img.png)
👉 문제링크 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 🔸 문제 분석 🔸 문자열을 입력받아 부분 문자열의 종류를 출력한다. 입력받은 문자열s를 1부터 s의 크기까지의 길이로 잘라 부분 문자열을 구한다. 문자열의 중복을 피해 저장하고, 개수를 출력한다. 🔸 코드 🔸 import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stri..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bX4WqT/btrXnK0TTkr/u4MvgdJjt1Dpx1RY4kbDGk/img.png)
👉 문제링크 11053번: 가장 긴 증가하는 부분 수열 수열 A가 주어졌을 때, 가장 긴 증가하는 부분 수열을 구하는 프로그램을 작성하시오. 예를 들어, 수열 A = {10, 20, 10, 30, 20, 50} 인 경우에 가장 긴 증가하는 부분 수열은 A = {10, 20, 10, 30, 20, 50} 이 www.acmicpc.net 🔸 문제 분석 🔸 n개의 수열을 입력받고, 가장 긴 증가하는 부분 수열의 길이를 출력한다. 수열의 인덱스 별 부분 수열 길이의 최대값을 저장하는 dp배열을 만들어 값을 구한다. 각 인덱스의 수가 부분 수열의 마지막 수가 됐을 때를 계산해서 그 중 최대값을 구해야 한다. 각 인덱스의 앞쪽에서 수열 원소값이 더 작은 것들 중 dp배열 값이 가장 큰 값을 구한다. 구한 값에 +1..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/XijqF/btrW6pwLx5z/1GtSduPIZxXxDI5lyrkUaK/img.png)
👉 문제링크 2667번: 단지번호붙이기 과 같이 정사각형 모양의 지도가 있다. 1은 집이 있는 곳을, 0은 집이 없는 곳을 나타낸다. 철수는 이 지도를 가지고 연결된 집의 모임인 단지를 정의하고, 단지에 번호를 붙이려 한다. 여 www.acmicpc.net 🔸 문제 분석 🔸 n X n 지도에서 붙어있는 집 (1)을 찾아 단지 별로 구분한다. 단지의 수와 각 단지별 집의 수를 오름차순으로 출력한다. BFS로 탐색해 붙어있는 집의 수와 단지 수를 구한다. 🔸 코드 🔸 import java.util.*; public class Main { public static void main(String[] args) { // 1) input Scanner sc = new Scanner(System.in); int n ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dcASlx/btrXaDHikPt/SbhjPcHqnhJ0Cs3ZPGhf80/img.png)
👉 문제링크 2644번: 촌수계산 사람들은 1, 2, 3, …, n (1 ≤ n ≤ 100)의 연속된 번호로 각각 표시된다. 입력 파일의 첫째 줄에는 전체 사람의 수 n이 주어지고, 둘째 줄에는 촌수를 계산해야 하는 서로 다른 두 사람의 번호가 주어 www.acmicpc.net 🔸 문제 분석 🔸 노드 수 n, 시작 노드, 끝 노드, 간선의 수 m과 m개의 간선 정보가 입력된다. 시작 노드부터 끝 노드 까지 몇 개의 간선으로 갈 수 있는지 출력한다. 연결되어있지 않으면 -1을 출력한다. 🔸 코드 🔸 import java.util.ArrayList; import java.util.Scanner; import java.util.Stack; public class Main { public static void ..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/y9XKg/btrW4FL4oqa/4bWG3Zc7jenC8m7TNvlH81/img.png)
👉 문제링크 2596번: 비밀편지 병현이는 지은이에게 문자 A, B, C, D, E, F, G, H 로 쓰여진 편지를 날마다 보내는데, 컴퓨터로 보내는 비밀편지로, 한 문자마다 0 또는 1인 숫자 여섯 개를 사용하여 보낸다. 둘 사이의 약속은 다음과 www.acmicpc.net 🔸 문제 분석 🔸 0또는 1로 이루어진 숫자를 문자로 변환한다. 같거나 차이가 1일때는 변환 가능하다 차이가 2 이상이면 변환 불가능 하다. 모두 변환 가능하면, 변환한 문자열을 출력 변환이 불가능하면, 처음 불가능 한 문자의 순서를 출력한다. 🔸 코드 🔸 import java.io.FileNotFoundException; import java.util.Scanner; public class Main { private static..