b24480. 알고리즘 수업 - 깊이 우선 탐색 2
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/24480   📌 자바(Java)로 푸는 깊이 우선 탐색(DFS) - 백준 24480 문제 풀이 🚀🔎 문제 개요이 문제는 백준 24480번 - 깊이 우선 탐색 2 문제입니다.주어진 그래프를 깊이 우선 탐색(DFS)하며 방문 순서를 기록해야 합니다.단, 내림차순(큰 숫자부터) 으로 방문해야 한다는 점이 특징입니다.💡 예제 입력5 5 11 41 22 32 43 4💡 예제 출력14320➡ 1번 정점부터 내림차순으로 DFS 탐색하며 방문 순서를 출력해야 합니다.🛠 알고리즘 접근 방식이 문제를 해결하기 위해 DFS(깊이 우선 탐색) + 정렬을 활용합니다.✏️ 주요 고려 사항✔ DFS를 사용하여 그래프를 탐색✔ 간선 정보를 저장할 때 내림차순으로 ..
Lv 2. 양궁대회
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/challenges?order=acceptance_desc&levels=2%2C3%2C4&languages=java&page=7 코딩테스트 연습 | 프로그래머스 스쿨개발자 취업의 필수 관문 코딩테스트를 철저하게 연습하고 대비할 수 있는 문제를 총망라! 프로그래머스에서 선발한 문제로 유형을 파악하고 실력을 업그레이드해 보세요!school.programmers.co.kr   📌 자바(Java)로 푸는 양궁대회 문제 풀이 🚀🔎 문제 개요이 문제는 프로그래머스 - 양궁대회 문제입니다.라이언이 화살 n개를 사용하여 어피치보다 높은 점수를 얻는 방법을 찾아야 합니다.단, 어피치의 화살 기록(info[])이 주어지며, 점수 차이가 가장 큰 경..
b3015. 오아시스 재결합
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/3015   📌 자바(Java)로 푸는 오아시스 재결합 문제 풀이 🚀🔎 문제 개요이 문제는 백준 3015번 - 오아시스 재결합 문제입니다.주어진 사람들의 키 정보를 기반으로 서로 볼 수 있는 쌍의 개수를 구하는 문제입니다.💡 예제 입력72412251💡 예제 출력10🛠 알고리즘 접근 방식이 문제를 해결하기 위해 스택(Stack) 을 활용한 O(N) 최적화 방법을 사용합니다.✏️ 주요 고려 사항✔ 각 사람의 키(h)를 기준으로 볼 수 있는 사람의 쌍을 계산해야 합니다.✔ 스택을 활용하여 효율적으로 볼 수 있는 쌍을 계산할 수 있습니다.✔ 스택에는 항상 오름차순으로 저장하여, 현재 키보다 작거나 같은 사람을 볼 수 있도록 합니다.✔ 같은 키를..
네트워크 분류 & 패킷
·
CS/네트워크
🌎 네트워크의 분류네트워크는 연결 범위나 메시지를 교환하는 방식에 따라 다양한 방식으로 분류할 수 있다. 이를 이해하면 보다 적절한 네트워크 구조를 선택할 수 있다. 🔍🏠 네트워크 범위에 따른 분류네트워크는 연결 범위에 따라 크게 다음과 같이 나뉜다.1️⃣ LAN (Local Area Network)가까운 지역을 연결하는 근거리 통신망일반적으로 건물 내, 회사, 학교 등의 내부 네트워크데이터 전송 속도가 빠르고, 네트워크 관리가 용이함예시: 사무실 내부 네트워크, 가정용 Wi-Fi 네트워크2️⃣ WAN (Wide Area Network)먼 지역을 연결하는 광역 통신망인터넷이 대표적인 WAN서로 다른 LAN이 연결될 때 필요장거리 통신이 가능하지만 속도는 LAN보다 상대적으로 느림예시: 국가 간 인터..
네트워크란?
·
CS/네트워크
🖧 네트워크를 이해해야 하는 이유 📱 요즘 스마트폰 앱 중 인터넷 없이 온전히 작동하는 앱이 얼마나 될까? 거의 대부분의 앱은 인터넷이 연결되어야만 제대로 동작한다. 그래서, 이런 앱을 개발하는 사람이라면 컴퓨터 네트워크에 대한 기본적인 이해가 필요하다. 네트워크 개념을 알면 데이터를 주고받는 원리를 파악하고, 더 안정적이고 효율적인 서비스를 만들 수 있다.🌍 컴퓨터 네트워크란?네트워크는 여러 개의 노드(Node)가 연결된 구조로, 마치 그래프(Graph)처럼 생겼다. 📊 이 연결 덕분에 우리는 데이터를 주고받을 수 있다.🌐 인터넷이란?인터넷은 쉽게 말해 네트워크들의 네트워크다. 단순한 개별 네트워크가 아니라, 여러 개의 네트워크가 서로 연결되어 데이터를 주고받을 수 있는 거대한 시스템이다. 즉..
b.1725 히스토그램
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/1725   📌 자바(Java)로 푸는 히스토그램에서 가장 큰 직사각형 문제 풀이🔎 문제 개요이 문제는 백준 "히스토그램에서 가장 큰 직사각형 (1725번)" 문제입니다.주어진 히스토그램에서 가장 큰 직사각형의 넓이를 구하는 문제입니다.💡 예제 입력72145133💡 예제 출력8위 입력에 대한 히스토그램을 그려보면 아래와 같습니다.이때, 가장 큰 직사각형의 넓이는 8입니다.🛠 알고리즘 접근 방식이 문제를 해결하기 위해 스택(Stack) 을 활용한 O(N) 최적화 방법을 사용합니다.✏️ 주요 고려 사항각 히스토그램 막대의 높이(h)를 기준으로 만들 수 있는 가장 큰 직사각형의 넓이를 계산해야 합니다.스택을 활용하여 효율적으로 넓이를 계산할 수..
Lv 2. 조이스틱
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/42860?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   🔠 자바(Java)로 푸는 조이스틱 문제 풀이🔎 문제 개요이 문제는 프로그래머스의 "조이스틱" 문제입니다.주어진 문자열을 "A"로 초기화된 상태에서 목표 문자열로 변경하기 위한 최소 조작 횟수를 구하는 문제입니다.💡 예제 입력String name = "JAZ";💡 예제 출력11위 예제에서 JAZ로 만들기 위해 최소 조작 횟수는 11입니다.🛠 알고리즘 접근 방식이 문제를 해결하기 위해 문자 변경 비용과 커서 ..
b.17299 오등큰수
·
Algorithm & Data Structures/BOJ
https://www.acmicpc.net/problem/17299    📌 자바(Java)로 푸는 오등큰수 문제 풀이🔎 문제 개요주어진 수열에서 각 숫자의 등장 횟수를 고려하여 오른쪽에서 가장 가까운 "더 자주 등장한 숫자"를 찾아야 하는 문제입니다.일반적인 오큰수(NGE, Next Greater Element) 문제와 달리 "숫자의 크기"가 아닌 "등장 횟수"를 기준으로 비교한다는 점이 다릅니다.💡 예제 입력71 1 2 3 4 2 1💡 예제 출력-1 -1 1 2 2 1 -1위 예제에서 각 숫자의 등장 횟수를 보면:1 → 3번 등장2 → 2번 등장3 → 1번 등장4 → 1번 등장각 숫자에 대해 오른쪽에서 더 자주 등장한 숫자를 찾으면 위와 같은 결과가 나옵니다.🛠 알고리즘 접근 방식이 문제를 ..
멀티 스레드 VS 멀티 프로세스
·
CS/운영체제
현대 소프트웨어 개발에서는 효율적인 동시 실행(Concurrency)과 병렬 처리(Parallelism)가필수적이다.특히, 백엔드 개발에서는 서버가 동시에 많은 요청을 처리해야 하기 때문에, CPU 활용을 극대화하고, 안정성을 유지하는 실행 방식을 선택하는 것이 중요하다.멀티 프로세스와 멀티 스레드는 이러한 동시 실행을 구현하는 대표적인 두 가지 방식이다.각각의 방식은 성능, 자원 관리, 안정성 측면에서 장단점을 가지고 있으며,어떤 방식이 적절한지는 애플리케이션의 특성과 요구사항에 따라 달라진다.그럼 이제, 멀티 프로세스와 멀티 스레드가 각각 어떻게 동작하는지, 그리고 언제 어떤 방식을 선택하는 것이 좋은지자세히 알아보자.멀티 스레드(Multi-Thread) vs 멀티 프로세스(Multi-Process)..
Lv 2. 숫자블록
·
Algorithm & Data Structures/Programers
https://school.programmers.co.kr/learn/courses/30/lessons/12923?language=java 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr   자연수 n에 대해, 1과 n을 제외한 약수 중에서 10,000,000 이하인 값 중 가장 큰 값을 찾아야 한다.만약 그런 값이 없다면 1을 반환해야 한다. 단, n이 1이라면 0을 반환합니다.처음 작성했던 코드에서는 n의 약수를 찾을 때 첫 번째로 발견되는 약수 쌍을 이용하여 바로 반환하는 방식이었다. 하지만 이 방식은 모든 경우를 정확하게 처리하지 못했다.  예를 들어, n = 20000010일 때, 약수는 [1,..