JAVA (개념, 알고리즘)
-
1. 씨름 선수 현수는 씨름 감독입니다. 현수는 씨름 선수를 선발공고를 냈고, N명의 지원자가 지원을 했습니다. 현수는 각 지원자의 키와 몸무게 정보를 알고 있습니다. 현수는 씨름 선수 선발 원칙을 다음과 같이 정했습니다. “A라는 지원자를 다른 모든 지원자와 일대일 비교해서 키와 몸무게 모두 A지원자 보다 높은(크고, 무겁다) 지원자가 존재하면 A지원자는 탈락하고, 그렇지 않으면 선발된다.” N명의 지원자가 주어지면 위의 선발원칙으로 최대 몇 명의 선수를 선발할 수 있는지 알아내는 프로그램을 작성하세요. 입력 첫째 줄에 지원자의 수 N(5
그리디 알고리즘1. 씨름 선수 현수는 씨름 감독입니다. 현수는 씨름 선수를 선발공고를 냈고, N명의 지원자가 지원을 했습니다. 현수는 각 지원자의 키와 몸무게 정보를 알고 있습니다. 현수는 씨름 선수 선발 원칙을 다음과 같이 정했습니다. “A라는 지원자를 다른 모든 지원자와 일대일 비교해서 키와 몸무게 모두 A지원자 보다 높은(크고, 무겁다) 지원자가 존재하면 A지원자는 탈락하고, 그렇지 않으면 선발된다.” N명의 지원자가 주어지면 위의 선발원칙으로 최대 몇 명의 선수를 선발할 수 있는지 알아내는 프로그램을 작성하세요. 입력 첫째 줄에 지원자의 수 N(5
2023.02.18 -
1. 미로탐색(DFS) 7*7 격자판 미로를 탈출하는 경로의 가지수를 출력하는 프로그램을 작성하세요. 출발점은 격자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 통로이다. 격자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면 위의 지도에서 출발점에서 도착점까지 갈 수 있는 방법의 수는 8가지이다. 입력 7*7 격자판의 정보가 주어집니다. 출력 첫 번째 줄에 경로의 가지수를 출력한다. 예시 입력 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 예시 출력 1 8 import java.util.*; class Main { sta..
DFS, BFS 활용 (2)1. 미로탐색(DFS) 7*7 격자판 미로를 탈출하는 경로의 가지수를 출력하는 프로그램을 작성하세요. 출발점은 격자의 (1, 1) 좌표이고, 탈출 도착점은 (7, 7)좌표이다. 격자판의 1은 벽이고, 0은 통로이다. 격자판의 움직임은 상하좌우로만 움직인다. 미로가 다음과 같다면 위의 지도에서 출발점에서 도착점까지 갈 수 있는 방법의 수는 8가지이다. 입력 7*7 격자판의 정보가 주어집니다. 출력 첫 번째 줄에 경로의 가지수를 출력한다. 예시 입력 1 0 0 0 0 0 0 0 0 1 1 1 1 1 0 0 0 0 1 0 0 0 1 1 0 1 0 1 1 1 1 0 0 0 0 1 1 1 0 1 1 0 0 1 0 0 0 0 0 0 예시 출력 1 8 import java.util.*; class Main { sta..
2023.02.09 -
1. 합이 같은 부분집합(DFS : 아마존 인터뷰) N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요. 둘로 나뉘는 두 부분집합은 서로소 집합이며, 두 부분집합을 합하면 입력으로 주어진 원래의 집합이 되어 합니다. 예를 들어 {1, 3, 5, 6, 7, 10}이 입력되면 {1, 3, 5, 7} = {6, 10} 으로 두 부분집합의 합이 16으로 같은 경우가 존재하는 것을 알 수 있다. 입력 첫 번째 줄에 자연수 N(1
DFS, BFS 활용 (1)1. 합이 같은 부분집합(DFS : 아마존 인터뷰) N개의 원소로 구성된 자연수 집합이 주어지면, 이 집합을 두 개의 부분집합으로 나누었을 때 두 부분집합의 원소의 합이 서로 같은 경우가 존재하면 “YES"를 출력하고, 그렇지 않으면 ”NO"를 출력하는 프로그램을 작성하세요. 둘로 나뉘는 두 부분집합은 서로소 집합이며, 두 부분집합을 합하면 입력으로 주어진 원래의 집합이 되어 합니다. 예를 들어 {1, 3, 5, 6, 7, 10}이 입력되면 {1, 3, 5, 7} = {6, 10} 으로 두 부분집합의 합이 16으로 같은 경우가 존재하는 것을 알 수 있다. 입력 첫 번째 줄에 자연수 N(1
2023.02.07 -
1. 피보나치 재귀(메모이제이션) 피보나치를 구현하는 것을 여러 방법으로 풀이해보도록 하겠다. 성능 순으로는 3 -> 2 -> 1 순서로 좋다. 1. 배열을 구현하지 않고 재귀함수를 이용하여 풀이하는 방법 import java.util.Scanner; public class Main { public int DFS(int n) { if(n==1 || n==2) return 1; else return DFS(n-2)+DFS(n-1); // 배열 값을 리턴한다. } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=1; i 오른..
Recursive, Tree, Graph(DFS, BFS 기초)1. 피보나치 재귀(메모이제이션) 피보나치를 구현하는 것을 여러 방법으로 풀이해보도록 하겠다. 성능 순으로는 3 -> 2 -> 1 순서로 좋다. 1. 배열을 구현하지 않고 재귀함수를 이용하여 풀이하는 방법 import java.util.Scanner; public class Main { public int DFS(int n) { if(n==1 || n==2) return 1; else return DFS(n-2)+DFS(n-1); // 배열 값을 리턴한다. } public static void main(String[] args) { Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); for(int i=1; i 오른..
2023.02.03 -
1. 선택 정렬 N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. 입력 첫 번째 줄에 자연수 N(1
Sorting and Searching(정렬, 이분검색과 결정알고리즘)1. 선택 정렬 N개의 숫자가 입력되면 오름차순으로 정렬하여 출력하는 프로그램을 작성하세요. 정렬하는 방법은 선택정렬입니다. 입력 첫 번째 줄에 자연수 N(1
2023.01.29 -
HashMap 개념 쓰임새는 다음과 같다. HashMap map = new HashMap(); HashMap 형태이며, map이라는 이름으로 객체를 생성한 것이다. (1) HashMap에 데이터를 추가하고 싶을 때 map.put(key, value); // x라는 키에 value 값을 저장한다. (2) HashMap에 데이터를 가져오고 싶을 때 map.get(key, value) // 해당하는 key의 value 값을 가져온다. (3-1)(중요!) 해당하는 key 값이 있는지 확인하고 싶을 때 (getOrDefault() 이용) map.getOrDefault(x,0) // map 객체에 x라는 key가 존재하면 해당 key의 // value 값을 가져오고, 없다면 0을 가져온다. (3-2) 해당하는 ke..
HashMap (+후반에 TreeSet에 대한 간단한 개념)HashMap 개념 쓰임새는 다음과 같다. HashMap map = new HashMap(); HashMap 형태이며, map이라는 이름으로 객체를 생성한 것이다. (1) HashMap에 데이터를 추가하고 싶을 때 map.put(key, value); // x라는 키에 value 값을 저장한다. (2) HashMap에 데이터를 가져오고 싶을 때 map.get(key, value) // 해당하는 key의 value 값을 가져온다. (3-1)(중요!) 해당하는 key 값이 있는지 확인하고 싶을 때 (getOrDefault() 이용) map.getOrDefault(x,0) // map 객체에 x라는 key가 존재하면 해당 key의 // value 값을 가져오고, 없다면 0을 가져온다. (3-2) 해당하는 ke..
2023.01.25