본문 바로가기
728x90

전체 글71

[백준 자바 JAVA] 1260번 DFS와 BFS https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net 문제 그래프를 DFS로 탐색한 결과와 BFS로 탐색한 결과를 출력하는 프로그램을 작성하시오. 단, 방문할 수 있는 정점이 여러 개인 경우에는 정점 번호가 작은 것을 먼저 방문하고, 더 이상 방문할 수 있는 점이 없는 경우 종료한다. 정점 번호는 1번부터 N번까지이다. 입력 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 1.. 2022. 3. 26.
[백준 자바 JAVA] 11047번 동전 0 https://www.acmicpc.net/problem/11047 11047번: 동전 0 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수) www.acmicpc.net 문제 준규가 가지고 있는 동전은 총 N종류이고, 각각의 동전을 매우 많이 가지고 있다. 동전을 적절히 사용해서 그 가치의 합을 K로 만들려고 한다. 이때 필요한 동전 개수의 최솟값을 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에.. 2022. 3. 26.
[백준 자바 JAVA] 1003번 피보나치 함수 https://www.acmicpc.net/problem/1003 1003번: 피보나치 함수 각 테스트 케이스마다 0이 출력되는 횟수와 1이 출력되는 횟수를 공백으로 구분해서 출력한다. www.acmicpc.net 문제 다음 소스는 N번째 피보나치 수를 구하는 C++ 함수이다. int fibonacci(int n) { if (n == 0) { printf("0"); return 0; } else if (n == 1) { printf("1"); return 1; } else { return fibonacci(n‐1) + fibonacci(n‐2); } } fibonacci(3)을 호출하면 다음과 같은 일이 일어난다. fibonacci(3)은 fibonacci(2)와 fibonacci(1) (첫 번째 호출).. 2022. 3. 26.
[알고리즘 정렬] 자바(JAVA)로 알아보는 퀵 정렬(Quick Sort) 퀵 정렬(Quick Sort) 퀵정렬을 하기 위해 가장 먼저 해야 하는 것: 기준점(pivot) 잡기 기준점(pivot) 값을 정할 때에는 아무 값이나 정해도 되지만 중간 값으로 잡는 게 가장 좋다. 피벗 선택 방식: 첫 번째, 중간, 마지막, 랜덤 등등 (선택 방식에 따라 속도가 달라짐) 다양함 하지만 우리는 배열을 검색해보고 나서 중간값이 어딘지를 정할 수 없기 때문에 그냥 물리적으로 중간에 있는 값을 선택(배열의 길이가 n라고 치면 n/2의 값을 기준점으로 잡음) 아무 곳을 기준점으로 잡고 기준점을 기준으로 기준점보다 작거나 같으면 smaller, 기준점보다 크거나 같으면 bigger(기준점을 smaller에 포함시켜도 되고 bigger에 포함시켜도 된다)로 나눈다. 퀵 정렬의 전제는 작은 쪽(sm.. 2022. 3. 26.
[알고리즘 정렬] 자바(JAVA)로 알아보는 버블 정렬(거품 정렬 Bubble Sort) 버블 정렬(Bubble Sort) 앞에서부터 두 개씩 자기 옆에 있는 값과 비교 → 작은 값은 앞으로 큰 값은 뒤로 바꾸면서 정렬하는 방법 첫 번째 루프 3 5 4 2 1 1. 3과 5를 비교: 작은 값(3)은 앞에, 큰 값(5)은 뒤에 있으니까 통과 3 5 4 2 1 2. 5와 4를 비교: 작은 값(4)은 뒤에, 큰 값(5)은 앞에 있으니까 자리를 바꿔줌 바꾼 결과 3 4 5 2 1 3 4 5 2 1 3. 5와 2를 비교: 작은 값(2)은 뒤에, 큰 값(5)은 앞에 있으니까 자리를 바꿔줌 바꾼 결과 3 4 2 5 1 3 4 2 5 1 4. 5와 1을 비교: 작은 값(1)은 뒤에, 큰 값(5)은 앞에 있으니까 자리를 바꿔줌 바꾼 결과 3 4 2 1 5 5는 정렬 완료 두 번째 루프 3 4 2 1 5 1... 2022. 3. 25.
[네트워크] IP와 TCP/UDP, TCP/IP 정리 IP(인터넷 프로토콜) 클라이언트와 서버 사이에 존재하는 인터넷은 수많은 노드로 이루어져 있는데, 이러한 노드들을 지나 정확하게 서버에 도착할 수 있도록 하는 것이 바로 IP이다. 클라이언트와 서버 각각에 IP주소(100.100.100.1 / 200.200.200.1)를 부여하고 패킷(출발지 IP, 도착지 IP, 전송할 데이터 등이 담겨져 있다) 단위로 데이터를 전달한다. 노드끼리 패킷을 전달하며 서버까지 도착하게 된다. 서버는 패킷이 도착하면 데이터를 받았다는 통신(패킷)을 다시 클라이언트에게 전달해준다. 이때 2번에서 거쳐간 노드와는 다른 경로로 데이터가 전달될 수 있다(인터넷 망은 복잡하므로) 한계 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송함 → 서버는 당연히 패킷을 받.. 2022. 3. 20.