본문 바로가기

티스토리챌린지15

[백준 24445] 알고리즘 수업 - 너비 우선 탐색 2 [Java] 문제오늘도 서준이는 너비 우선 탐색(BFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든 간선의 가중치는 1이다. 정점 R에서 시작하여 너비 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력하자.너비 우선 탐색 의사 코드는 다음과 같다. 인접 정점은 내림차순으로 방문한다.bfs(V, E, R) { # V : 정점 집합, E : 간선 집합, R : 시작 정점  for each v ∈ V - {R}  visited[v] 입력첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤.. 2024. 11. 27.
[백준 24444] 알고리즘 수업 - 너비 우선 탐색 1 [Java] 문제오늘도 서준이는 너비 우선 탐색(BFS) 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 정점과 M개의 간선으로 구성된 무방향 그래프(undirected graph)가 주어진다. 정점 번호는 1번부터 N번이고 모든 간선의 가중치는 1이다. 정점 R에서 시작하여 너비 우선 탐색으로 노드를 방문할 경우 노드의 방문 순서를 출력하자.너비 우선 탐색 의사 코드는 다음과 같다. 인접 정점은 오름차순으로 방문한다.bfs(V, E, R) { # V : 정점 집합, E : 간선 집합, R : 시작 정점  for each v ∈ V - {R}  visited[v] 입력첫째 줄에 정점의 수 N (5 ≤ N ≤ 100,000), 간선의 수 M (1 ≤.. 2024. 11. 26.
[백준 24061] 알고리즘 수업 - 병합 정렬 2 [Java] 문제오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A의 원소가 K 번 변경된 직후의 배열 A를 출력해 보자.크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다.merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p 입력첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 변경 횟수 K(1 ≤ K ≤ 108)가 주어진다.다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109)출력배열 A에 K 번 변경이 발생한 직후의 배열 A.. 2024. 11. 25.
[백준 24060] 알고리즘 수업 - 병합 정렬 1 [Java] 문제오늘도 서준이는 병합 정렬 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자.N개의 서로 다른 양의 정수가 저장된 배열 A가 있다. 병합 정렬로 배열 A를 오름차순 정렬할 경우 배열 A에 K 번째 저장되는 수를 구해서 우리 서준이를 도와주자.크기가 N인 배열에 대한 병합 정렬 의사 코드는 다음과 같다.merge_sort(A[p..r]) { # A[p..r]을 오름차순 정렬한다. if (p 입력첫째 줄에 배열 A의 크기 N(5 ≤ N ≤ 500,000), 저장 횟수 K(1 ≤ K ≤ 108)가 주어진다.다음 줄에 서로 다른 배열 A의 원소 A1, A2, ..., AN이 주어진다. (1 ≤ Ai ≤ 109)출력배열 A에 K 번째 저장 되는 수를 출력한다... 2024. 11. 24.
Recursive Call 재귀 호출(Recursive Call)자기 자신을 호출하는 방식왜 Recursive Call이 필요할까요?미로를 탈출한다고 생각해봅시다. 막다른 길에 도달하면 이전 갈림길로 돌아가 다른 경로를 시도해야 합니다.이처럼 여러 선택지를 모두 시도해야 할 때, 실패한 경우 이전 상태로 되돌아가는(backtracking) 과정이 필요합니다.재귀 호출은 함수가 종료되기 전까지 상태를 유지하므로, 각 단계의 상태를(스택 구조로) 자동으로 기억합니다.💡하나의 선택지가 끝나면 이전 상태로 돌아가 다른 선택지를 시도할 수 있습니다.💡하나의 큰 문제를 여러 작은 문제로 분리하거나, 반복문보다 직관적이고 간결한 코드 작성이 가능합니다. 🔄 동작 원리피보나치 수열을 통해 재귀 호출의 동작 원리를 살펴봅시다.피보나치 수열이.. 2024. 11. 23.
코딩테스트에 대하여... 1️⃣코딩 테스트의 목적❓기업에서 개발자 채용 과정에 코딩 테스트를 도입한 이유가 뭘까요?실제 개발 업무에서는 알고리즘을 직접 사용하기 보다, 외부 라이브러리나 API 등을 사용하는 경우가 많습니다. 그럼에도 기업은 코딩테스트를 요구하기에, 지원자는 실제 역량과는 무관한 테스트라 생각할 수 있습니다.코딩테스트를 준비하기 전에 앞서, 준비 해야하는 이유에 대해 먼저 알아보겠습니다.종합적인 문제 해결 능력 검증코딩 테스트는 제한된 시간 내 주어진 문제를 분석하고, 논리적 사고를 통해 해법을 제시하는 능력에 대한 평가입니다.이 과정에서 지원자가 사용하는 PL과 자료구조에 대한 이해도를 평가할 수 있습니다.저비용 고효율 필터링개발자 면접은 결국 개발자가 보지만, 많은 지원자를 보기에는 비효율적입니다. 많은 지원.. 2024. 11. 22.