코딩 블로그
-
[C#][프로그래머스] 게임 맵 최단거리
프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 📒 문제ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다.위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가..
2025.02.19
-
[C#][프로그래머스] 무인도 여행
프로그래머스 > 코딩테스트 연습 > 연습문제 > 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 📒 문제메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다. 지도의 각 칸에 적힌 숫자는 식량을 나타내는데, 상, 하, 좌, 우로 연결되는 칸에 적힌 숫자를 모두 합한 값은 해당 무인도..
2025.02.19
-
[C#][프로그래머스] 타겟 넘버
프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 📒 문제n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 re..
2025.02.18
-
[알고리즘] 너비 우선 탐색, BFS(Breadth-First Search) 코드 구현
너비 우선 탐색에 대한 개념은 아래 포스팅을 참조하면 된다. [알고리즘] 너비 우선 탐색 (BFS, Breadth-First Search)이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 너비 우선 탐색(BFS)에 대해 알아보려고한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그twd0622.tistory.com 너비 우선 탐색은 Queue(큐)를 이용해서 코드로 구현할 수 있다. C# 코드를 통해 BFS를 구현해 보겠다.큐(Queue)를 이용한 반복 구현너비 우선 탐색은 Queue를 이용해서 구현할 수 있으며, 한 정점을 방문하면 인접한 정점을 모두 Queue에 담고 Queue에 담긴 정점을 꺼내 Queue에 담긴 모든 노드를 방문할 때 ..
2025.02.17
-
[알고리즘] 깊이 우선 탐색, DFS(Deep-First Search) 코드 구현
깊이 우선 탐색에 대한 개념은 아래의 포스팅을 참조하면 된다. [알고리즘] 깊이 우선 탐색 (DFS, Depth-First Search)이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 깊이 우선 탐색(DFS)에 대해 알아보려고 한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그래twd0622.tistory.com 깊이 우선 탐색을 코드로 구현하는 방법은 2가지로 반복 구현, 재귀 구현이 있다. C#코드를 통해 DFS를 구현해 보겠다.반복구현반복 구현은 Stack을 이용한 구현 방법으로, 한 정점을 방문하면 인접한 정점들을 모두 Stack에 담고 Stack에서 하나씩 꺼내 인접한 노드를 Stack에 담으면서 Stack에 담긴 모든 노드를 방문..
2025.02.17
-
[디자인패턴] 디자인 패턴 개요
디자인 패턴(Design Pattern)은 소프트웨어 설계 과정에서 발생하는 문제들에 대한 해결책이다. 코드에서 반복되는 디자인 문제들을 해결하기 위해 맞춤화할 수 있는 미리 만들어진 청사진과 비슷하다. 일종의 설계 기법이며, 설계 방법이다목적sw 재사용성, 호환성, 유지보수성을 보장 특징디자인 패턴은 하나의 아이디어로, 특정한 구현이 아니다. 패턴과 알고리즘과 자주 혼동하는데, 두 개념 모두 어떤 문제에 대한 해결책을 설명하기 때문이다. 알고리즘은 어떤 문제를 해결하기 위해 따라야 할 명확한 절차이고, 디자인 패턴은 해결책에 대한 상위 수준의 설명이다. 디자인 패턴은 결과와 기능을 제시하나 구현 단계 및 순서는 사용자가 결정한다. 프로젝트에 항상 적용해야 하는 것은 아니지만, 재사용, 호환, 유지 보..
2025.02.13
-
[C#] Array.Sort() 람다식
이번 포스팅 내용은 Array.Sort에 람다식을 이용하는 방법이다.단순 오름차순으로 변경하는게 아니라 다양한 조건을 사용해 정렬을 하는 법을 찾다가 알게된 문법이다.Array.Sort()를 사용하면 오름차순 배열을 정렬할 수 있다.int[] arr1 = { 20, 60, 40, 50, 30, 10 };Array.Sort(arr1);Console.WriteLine(string.Join(", ", arr1)); // 10, 20, 30, 40, 50, 60 하지만 개발을 하다보면 오름차순 뿐만아니라, 내림차순이나, 기준이 같으면 다른 항목을 비교하는 등 다양한 조건이 요구될 때가 있다.람다식람다식은 c#에서 익명 메서드를 만드는 방법으로 간단하게 설명하자면 '(매개변수 목록) => 식'의 형태로 표현된다...
2025.02.12
-
[C#][프로그래머스] 과제 진행하기
프로그래머스 > 코딩테스트 연습 > 연습문제 > 과제 진행하기 https://school.programmers.co.kr/learn/courses/30/lessons/176962#qna 📒 문제과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다. 과제는 시작하기로 한 시각이 되면 시작합니다.새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다.진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다.만약, 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새로 시작해야 하는 과제부터 진행합니다.멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과..
2025.02.12
-
[C#][프로그래머스] 예산
프로그래머스 > 코딩테스트 연습 > Summer/Winter Coding(~2018) > 예산https://school.programmers.co.kr/learn/courses/30/lessons/12982 📒 문제S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한..
2025.02.11
-
[알고리즘] 구현 (Implementation)
구현 알고리즘(Implementation Algorithm)이란, 어떤 특별한 공식이나 방법이 아닌 코딩테스트 문제 해결을 위한 개념으로, 단순히 머릿속에 있는 알고리즘을 소스코드로 풀어내는 과정을 말한다. (Problem-Thinking-Solution) 어떤 문제를 풀든 소스코드를 작성하는 과정은 필수이기 때문에 대부분의 알고리즘 문제가 '구현 문제'이다. 그 중 구현이 어렵거나 초점에 맞춰져있는 문제들이 있다. 즉, 풀이를 떠올리는 것이 쉽지만 소스코드로 옮기기 어려운 문제가 구현문제 라고 생각하면 된다. 예시실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제문자열을 특정한 기준에 따라서 끊어 처리해야하는 문제적절한 라이브러리를 찾아서 사용해야 하는 문제알고리즘은 간단한데, 코드가 길어지..
2025.02.11
최신 글
-
[C#][프로그래머스] 게임 맵 최단거리
프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 게임 맵 최단거리 https://school.programmers.co.kr/learn/courses/30/lessons/1844 📒 문제ROR 게임은 두 팀으로 나누어서 진행하며, 상대 팀 진영을 먼저 파괴하면 이기는 게임입니다. 따라서, 각 팀은 상대 팀 진영에 최대한 빨리 도착하는 것이 유리합니다. 지금부터 당신은 한 팀의 팀원이 되어 게임을 진행하려고 합니다. 다음은 5 x 5 크기의 맵에, 당신의 캐릭터가 (행: 1, 열: 1) 위치에 있고, 상대 팀 진영은 (행: 5, 열: 5) 위치에 있는 경우의 예시입니다.위 그림에서 검은색 부분은 벽으로 막혀있어 갈 수 없는 길이며, 흰색 부분은 갈 수 있는 길입니다. 캐릭터가..
2025.02.19
-
[C#][프로그래머스] 무인도 여행
프로그래머스 > 코딩테스트 연습 > 연습문제 > 무인도 여행 https://school.programmers.co.kr/learn/courses/30/lessons/154540 📒 문제메리는 여름을 맞아 무인도로 여행을 가기 위해 지도를 보고 있습니다. 지도에는 바다와 무인도들에 대한 정보가 표시돼 있습니다. 지도는 1 x 1크기의 사각형들로 이루어진 직사각형 격자 형태이며, 격자의 각 칸에는 'X' 또는 1에서 9 사이의 자연수가 적혀있습니다. 지도의 'X'는 바다를 나타내며, 숫자는 무인도를 나타냅니다. 이때, 상, 하, 좌, 우로 연결되는 땅들은 하나의 무인도를 이룹니다. 지도의 각 칸에 적힌 숫자는 식량을 나타내는데, 상, 하, 좌, 우로 연결되는 칸에 적힌 숫자를 모두 합한 값은 해당 무인도..
2025.02.19
-
[C#][프로그래머스] 타겟 넘버
프로그래머스 > 코딩테스트 연습 > 깊이/너비 우선 탐색(DFS/BFS) > 타겟 넘버 https://school.programmers.co.kr/learn/courses/30/lessons/43165 📒 문제n개의 음이 아닌 정수들이 있습니다. 이 정수들을 순서를 바꾸지 않고 적절히 더하거나 빼서 타겟 넘버를 만들려고 합니다. 예를 들어 [1, 1, 1, 1, 1]로 숫자 3을 만들려면 다음 다섯 방법을 쓸 수 있습니다.-1+1+1+1+1 = 3+1-1+1+1+1 = 3+1+1-1+1+1 = 3+1+1+1-1+1 = 3+1+1+1+1-1 = 3사용할 수 있는 숫자가 담긴 배열 numbers, 타겟 넘버 target이 매개변수로 주어질 때 숫자를 적절히 더하고 빼서 타겟 넘버를 만드는 방법의 수를 re..
2025.02.18
-
[알고리즘] 너비 우선 탐색, BFS(Breadth-First Search) 코드 구현
너비 우선 탐색에 대한 개념은 아래 포스팅을 참조하면 된다. [알고리즘] 너비 우선 탐색 (BFS, Breadth-First Search)이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 너비 우선 탐색(BFS)에 대해 알아보려고한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그twd0622.tistory.com 너비 우선 탐색은 Queue(큐)를 이용해서 코드로 구현할 수 있다. C# 코드를 통해 BFS를 구현해 보겠다.큐(Queue)를 이용한 반복 구현너비 우선 탐색은 Queue를 이용해서 구현할 수 있으며, 한 정점을 방문하면 인접한 정점을 모두 Queue에 담고 Queue에 담긴 정점을 꺼내 Queue에 담긴 모든 노드를 방문할 때 ..
2025.02.17
-
[알고리즘] 깊이 우선 탐색, DFS(Deep-First Search) 코드 구현
깊이 우선 탐색에 대한 개념은 아래의 포스팅을 참조하면 된다. [알고리즘] 깊이 우선 탐색 (DFS, Depth-First Search)이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 깊이 우선 탐색(DFS)에 대해 알아보려고 한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그래twd0622.tistory.com 깊이 우선 탐색을 코드로 구현하는 방법은 2가지로 반복 구현, 재귀 구현이 있다. C#코드를 통해 DFS를 구현해 보겠다.반복구현반복 구현은 Stack을 이용한 구현 방법으로, 한 정점을 방문하면 인접한 정점들을 모두 Stack에 담고 Stack에서 하나씩 꺼내 인접한 노드를 Stack에 담으면서 Stack에 담긴 모든 노드를 방문..
2025.02.17
-
[디자인패턴] 디자인 패턴 개요
디자인 패턴(Design Pattern)은 소프트웨어 설계 과정에서 발생하는 문제들에 대한 해결책이다. 코드에서 반복되는 디자인 문제들을 해결하기 위해 맞춤화할 수 있는 미리 만들어진 청사진과 비슷하다. 일종의 설계 기법이며, 설계 방법이다목적sw 재사용성, 호환성, 유지보수성을 보장 특징디자인 패턴은 하나의 아이디어로, 특정한 구현이 아니다. 패턴과 알고리즘과 자주 혼동하는데, 두 개념 모두 어떤 문제에 대한 해결책을 설명하기 때문이다. 알고리즘은 어떤 문제를 해결하기 위해 따라야 할 명확한 절차이고, 디자인 패턴은 해결책에 대한 상위 수준의 설명이다. 디자인 패턴은 결과와 기능을 제시하나 구현 단계 및 순서는 사용자가 결정한다. 프로젝트에 항상 적용해야 하는 것은 아니지만, 재사용, 호환, 유지 보..
2025.02.13
-
[C#] Array.Sort() 람다식
이번 포스팅 내용은 Array.Sort에 람다식을 이용하는 방법이다.단순 오름차순으로 변경하는게 아니라 다양한 조건을 사용해 정렬을 하는 법을 찾다가 알게된 문법이다.Array.Sort()를 사용하면 오름차순 배열을 정렬할 수 있다.int[] arr1 = { 20, 60, 40, 50, 30, 10 };Array.Sort(arr1);Console.WriteLine(string.Join(", ", arr1)); // 10, 20, 30, 40, 50, 60 하지만 개발을 하다보면 오름차순 뿐만아니라, 내림차순이나, 기준이 같으면 다른 항목을 비교하는 등 다양한 조건이 요구될 때가 있다.람다식람다식은 c#에서 익명 메서드를 만드는 방법으로 간단하게 설명하자면 '(매개변수 목록) => 식'의 형태로 표현된다...
2025.02.12
-
[C#][프로그래머스] 과제 진행하기
프로그래머스 > 코딩테스트 연습 > 연습문제 > 과제 진행하기 https://school.programmers.co.kr/learn/courses/30/lessons/176962#qna 📒 문제과제를 받은 루는 다음과 같은 순서대로 과제를 하려고 계획을 세웠습니다. 과제는 시작하기로 한 시각이 되면 시작합니다.새로운 과제를 시작할 시각이 되었을 때, 기존에 진행 중이던 과제가 있다면 진행 중이던 과제를 멈추고 새로운 과제를 시작합니다.진행중이던 과제를 끝냈을 때, 잠시 멈춘 과제가 있다면, 멈춰둔 과제를 이어서 진행합니다.만약, 과제를 끝낸 시각에 새로 시작해야 되는 과제와 잠시 멈춰둔 과제가 모두 있다면, 새로 시작해야 하는 과제부터 진행합니다.멈춰둔 과제가 여러 개일 경우, 가장 최근에 멈춘 과..
2025.02.12
-
[C#][프로그래머스] 예산
프로그래머스 > 코딩테스트 연습 > Summer/Winter Coding(~2018) > 예산https://school.programmers.co.kr/learn/courses/30/lessons/12982 📒 문제S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없습니다. 그래서 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다. 물품을 구매해 줄 때는 각 부서가 신청한 금액만큼을 모두 지원해 줘야 합니다. 예를 들어 1,000원을 신청한 부서에는 정확히 1,000원을 지원해야 하며, 1,000원보다 적은 금액을 지원해 줄 수는 없습니다. 부서별로 신청한..
2025.02.11
-
[알고리즘] 구현 (Implementation)
구현 알고리즘(Implementation Algorithm)이란, 어떤 특별한 공식이나 방법이 아닌 코딩테스트 문제 해결을 위한 개념으로, 단순히 머릿속에 있는 알고리즘을 소스코드로 풀어내는 과정을 말한다. (Problem-Thinking-Solution) 어떤 문제를 풀든 소스코드를 작성하는 과정은 필수이기 때문에 대부분의 알고리즘 문제가 '구현 문제'이다. 그 중 구현이 어렵거나 초점에 맞춰져있는 문제들이 있다. 즉, 풀이를 떠올리는 것이 쉽지만 소스코드로 옮기기 어려운 문제가 구현문제 라고 생각하면 된다. 예시실수 연산을 다루고, 특정 소수점 자리까지 출력해야 하는 문제문자열을 특정한 기준에 따라서 끊어 처리해야하는 문제적절한 라이브러리를 찾아서 사용해야 하는 문제알고리즘은 간단한데, 코드가 길어지..
2025.02.11
-
[C#][프로그래머스] 연속 부분 수열 합의 개수
프로그래머스 > 코딩테스트 연습 > 연습문제 > 연속 부분 수열 합의 개수 https://school.programmers.co.kr/learn/courses/30/lessons/131701 📒 문제철호는 수열을 가지고 놀기 좋아합니다. 어느 날 철호는 어떤 자연수로 이루어진 원형 수열의 연속하는 부분 수열의 합으로 만들 수 있는 수가 모두 몇 가지인지 알아보고 싶어졌습니다. 원형 수열이란 일반적인 수열에서 처음과 끝이 연결된 형태의 수열을 말합니다. 예를 들어 수열 [7, 9, 1, 1, 4] 로 원형 수열을 만들면 다음과 같습니다.원형 수열은 처음과 끝이 연결되어 끊기는 부분이 없기 때문에 연속하는 부분 수열도 일반적인 수열보다 많아집니다. 원형 수열의 모든 원소 elements가 순서대로 주어질..
2025.02.10
-
[알고리즘] 누적합 (Prefix Sum)
누적합(Prefix Sum)은 배열 또는 리스트 등에서 일정 구간의 합을 빠르게 계산하기 위한 방법이면서 동적 계획법(DP)의 형태 중 하나이다.기본적인 방식은 각 요소까지의 누적합을 계산하여 이를 배열에 저장해 두는 것이다. 이후 특정 구간의 합을 구할때 저장해둔 배열을 사용한다. 더보기동적계획법(DP, Dynamic Programming)여기서 동적계획법을 간단히 설명하면 DP, 즉 Dynamic Programming의 줄임말로 기본적인 아이디어는 하나의 큰문제를 여러 개의 작은 문제로 나누어서 해결하고 그 결과를 저장하여 다시 큰 문제를 해결할 때 사용하는 것이다.DP는 특정한 알고리즘이 아닌 문제해결 패러다임으로 해당 이름은 큰 의미가 없이 지어졌다고 한다. 누적합 조건 누적합은 배열의 값들이 변..
2025.02.10
-
[알고리즘] A* (에이 스타) 알고리즘
오늘 포스팅할 알고리즘은 A* (에이 스타)알고리즘이다,A*(에이 스타)는 그래프의 최단 경로 문제를 해결하는 알고리즘으로 다익스트라 알고리즘을 발전시킨 것 입니다. 다익스트라 알고리즘은 시작점에서 각 정점에 이르는 최단 경로를, 시작점에서 가까운 정점부터 결정한다. 그러다 보니 종점에서 멀어지는 방향에 있는 정점들의 최단 경로도 결정하게 되는데 이 계산은 결국 사용되지 않기 때문에 불필요한 계산이 된다. A*는 이를 방지하기 위한 알고리즘이다. 다익스트라 알고리즘을 잘모른다면 아래의 포스팅을 보고 오는 것을 추천한다. [알고리즘] 다익스트라 알고리즘 (Dijkstra Algorithm)오늘 포스팅할 내용은 다익스트라 알고리즘으로 앞서 포스팅했던 벨먼-포드 알고리즘과 마찬가지로 그래프의 최단 경로를 구하..
2025.02.07
-
[알고리즘] 다익스트라 알고리즘 (Dijkstra Algorithm)
오늘 포스팅할 내용은 다익스트라 알고리즘으로 앞서 포스팅했던 벨먼-포드 알고리즘과 마찬가지로 그래프의 최단 경로를 구하는 알고리즘 이다. 알고리즘의 이름은 개발자 에츠허르 W, 데이크스트라[Edsger W. Dijkstra]의 이름에서 유래했다. 다익스트라 알고리즘을 보기전에 그래프 자료구조와 벨먼-포드 알고리즘을 보고 오면 더 이해하기 쉬울 것이다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그래프가 생각날 수 있다.하지만 컴퓨터 과학에서 사용하는 그래프는 좀 다르다. 이번 포스팅에서는 컴퓨터 과학에서 말하는 그래twd0622.tistory.com [알고리즘] 벨먼-포드 알고리즘 (Bellman-Ford Algorithm)이번에 포스팅할 알고리즘..
2025.02.06
-
[에러] tomcat 실행 에러
톰캣을 구동할때 발생한 포트 에러다.오랜만에 web 작업을 하려다 보니 발생했다.Several ports (8005, 8080) required by Tomcat v9.0 Server at localhost are already in use. The server may already be running in another process, or a system process may be using the port. To start this server you will need to stop the other process or change the port number(s).기본 포트(8005, 8080)를 이미 사용하고 있다고 판단해 나오는 오류이다.사용 중인지 확인해서 사용중이라면 삭제 시켜주면 되다. ..
2025.02.06
-
[C#][프로그래머스] 점프와 순간 이동
프로그래머스 > 코딩테스트 연습 > Summer/Winter Coding(~2018) > 점프와 순간 이동 https://school.programmers.co.kr/learn/courses/30/lessons/12980 📒 문제OO 연구소는 한 번에 K 칸을 앞으로 점프하거나, (현재까지 온 거리) x 2 에 해당하는 위치로 순간이동을 할 수 있는 특수한 기능을 가진 아이언 슈트를 개발하여 판매하고 있습니다. 이 아이언 슈트는 건전지로 작동되는데, 순간이동을 하면 건전지 사용량이 줄지 않지만, 앞으로 K 칸을 점프하면 K 만큼의 건전지 사용량이 듭니다. 그러므로 아이언 슈트를 착용하고 이동할 때는 순간 이동을 하는 것이 더 효율적입니다. 아이언 슈트 구매자는 아이언 슈트를 착용하고 거리가 N 만큼 떨..
2025.02.06
-
[알고리즘] 벨먼-포드 알고리즘 (Bellman-Ford Algorithm)
이번에 포스팅할 알고리즘은 벨먼-포드 알고리즘으로 그래프의 최단 경로를 찾는 알고리즘이다. 이 알고리즘의 이름은 개발자인 리차드 E. 벨먼[Richard E. Bellman]과 레스터 포드 주니어[Lester Ford Junior]의 이름에서 유래 한다. 벨먼은 알고리즘의 중요 분야 중 하나인 동적계획법을 고안한 사람이기도 하다. 벨먼-포드 알고리즘을 보기전에 그래프 자료구조에 대해 잘 모른다면 아래의 포스팅을 보고 오면 좋다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그래프가 생각날 수 있다.하지만 컴퓨터 과학에서 사용하는 그래프는 좀 다르다. 이번 포스팅에서는 컴퓨터 과학에서 말하는 그래twd0622.tistory.com 현재 차근차근 해보..
2025.02.04
-
[네트워크] 호스팅 (Hosting)
호스팅은 인터넷을 통해 사용자에게 웹사이트 파일과 애플리케이션을 저장하고 전달하기 위한 서버 공간과 리소스를 제공하는 서비스를 말한다.호스팅 제공자는 웹사이트와 어플리케이션을 온라인에서 액세스할 수 있도록 하는데 필요한 서버, 스토리지, 네트워크 연결과 같은 인프라를 제공한다.서버 개발이나 관리에 대한 부담이 없기 때문에 대다수는 전문 업체를 통해 호스팅 서비스를 사용한다.호스팅 서비스에는 종종 도메인 등록, 보안 기능, 기술 지원이 포함되어 웹사이트가 안정적으로 사용 가능하고 서능이 좋은지 확인한다.호스팅의 종류공유 호스팅 (웹 호스팅) 여러 웹사이트가 단일 서버를 공유하는 서비스, 가장 보편적으로 사용되는 호스팅이다. 전용 호스팅 (서버 호스팅)단일 서버가 한 사용자에게 전용되는 서비스로, 대규모 트..
2025.02.04
-
[네트워크] 도메인 이름 (Domain Name)
도메인 이름(Domain Name)은 인터넷에서 특정 위치를 식별하는데 사용되는 사람이 읽을 수 있는 주소로, 웹사이트와 온라인 서비스에 더 쉽게 접근할 수 있도록 해준다. 도메인 주소는 IP 주소로 변환되며, 이는 컴퓨터가 서버를 찾고 연결하는데 사용하는 숫자 식별자다. 인터넷에 연결된 컴퓨터는 IP 주소(ex. IPv4: 192.0.2.172 / IPv6: 2001:db8:8b73:0000:0000:0370:1337)를 통해 웹에 접속한다. 컴퓨터는 이러한 IP 주소를 쉽게 처리할 수 있지만, 사람들은 서버를 운영하는 사람이 누군지 또는 웹사이트가 제공하는 서비스가 무엇인지 알기 어렵다. 또 IP 주소를 기억하기 어렵고 시간이 지나면 변경이 될수도 있다. 이러한 문제를 해결하기 위해 도메인 이름은 숫..
2025.01.23
-
[알고리즘] 깊이 우선 탐색 (DFS, Depth-First Search)
이번 포스팅은 그래프를 탐색하는 알고리즘 중 하나인 깊이 우선 탐색(DFS)에 대해 알아보려고 한다. [자료구조] 그래프 (Graph)그래프라고 하면 원 그래프나 막대 그래프, 혹은 수학의 y=f(x) 그래프가 생각날 수 있다.하지만 컴퓨터 과학에서 사용하는 그래프는 좀 다르다. 이번 포스팅에서는 컴퓨터 과학에서 말하는 그래twd0622.tistory.com 현재 차근차근 해보자는 생각에 기초 공부를 하는 중이다. 좀 더 자세한 내용은 다른 글에 작성하거나 추후 글을 수정하는 방향으로 작성해 보겠다. 틀린 내용이 있거나 궁금한게 있다면 편하게 댓글 남겨주시면 감사하겠습니다!📝 개념처음 시작할 때 그래프의 구조를 모르는 상태에서, 어떤 정점(시작점)에 위치 하고 있다고 가정해보자.목적은 간선에 따라가며..
2025.01.17