본문 바로가기

분류 전체보기

(176)
[코딩테스트] SWEA 1248 공통조상(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 1248 공통조상입니다.먼저 효율적인 풀이인지는 사실 잘 모르겠습니다. 제가 푼 방법만 공유드리겠습니다.(후에 찾아보니 binary lifting 방법이 있더라구요. 추후에 공부 후 포스팅하도록 하겠습니다.)포인트트리의 특성을 활용한 문제입니다.트리의 각 노드는 depth가 존재하고 같은 depth로 만들고 그 부모가 같은지 확인하고 다르다면 부모 노드로 이동하는 로직으로 구성했습니다.소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReade..
[코딩테스트] SWEA 1210 Ladder1(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 1210 Ladder1입니다.포인트사다리 타기 게임에 포인트는 아래로만 향하다가 갈래를 만났을 때 무조건 그쪽 방향으로 간다는 것입니다.100x100의 배열이기에 시작하는 위치(i==0이고 값이 1인) 위치를 기억하여 해당 위치에서 사다리를 탔을 때 목적지에 도착하도록 구현하는 문제입니다.소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.*;public class Q1210 { static cla..
[코딩테스트] SWEA 1247 최적경로(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 1247 최적경로입니다.포인트집과 회사의 위치는 고정되어 있고, 중간에 방문해야 하는 고객들의 위치를 어떤 순서로 방문할지 결정하는 것이 핵심 문제입니다.경로는 다음과 같은 형태로 구성됩니다:회사 → 고객 1 → 고객 2 → ... → 고객 n → 집이때, n명의 고객을 어떤 순서로 방문할지 결정하여 전체 경로의 맨해튼 거리 합이 최소가 되도록 해야 합니다.고객들의 방문 순서를 정하는 모든 경우를 탐색하려면 순열을 고려해야 하며, 이는 시간복잡도 O(n!)의 완전탐색 문제로 볼 수 있습니다.최악의 경우 n = 10일 때, 총 경우의 수는 10! =..
[코딩테스트] SWEA 1249 보급로(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 1249 보급로입니다.포인트문제가 여러 조건이 많은 것 같지만 배열의 숫자는 이동비용이라고 가정하면 결국 출발지로부터 도착지까지의 최소 비용을 구하는 문제입니다.따라서 BFS로 문제를 풀면 가능합니다. BFS는 한 위치에 도달하기에 최소 경로가 보장되기 때문에 step이라는 배열을 통해 비용을 저장합니다.소스코드import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.Arrays;import java.util.Lin..
[코딩테스트] SWEA 1218 괄호 짝짓기(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 1218 괄호 짝짓기입니다.포인트닫힌 괄호 ), ], }, >는 항상 그에 대응하는 열린 괄호 (, [, {, 뒤에 나와야 합니다.따라서 문자열을 순회하면서 닫힌 괄호를 만날 때마다 최근에 열린 괄호와 짝이 맞는지 확인해주는 방식으로 유효성을 판단할 수 있습니다. 이를 위해 가장 적절한 자료구조는 LIFO(Last-In-First-Out) 구조인 스택(Stack) 입니다.열린 괄호는 스택에 저장하고,닫힌 괄호를 만났을 때 스택의 top과 매칭되는 열린 괄호인지 확인합니다.괄호가 올바르게 짝지어지지 않았거나, 스택이 비어있는 경우 → 올바르지 않은 ..
[코딩테스트] SWEA 1226 미로1(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 1226 미로1입니다.포인트먼저 시작점과 목표 지점을 설정합니다.시작점으로부터 상하좌우 방향으로 이동 가능한지를 순회하면서 탐색을 진행합니다.이동 중에는 벽은 갈 수 없도록 범위 체크를 합니다.또한 이미 방문한 구간은 다시 탐색하지 않도록 처리하여 중복을 방지합니다.위 조건을 기반으로, 너비 우선 탐색(BFS)를 사용해 전체 경우를 탐색합니다.소스코드package SWExpert.Implementation;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStr..
[코딩테스트] SWEA 2819 격자판의 숫자 이어 붙이기(Java) 제가 공부한 내용을 정리하는 블로그입니다.아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁SWEA 2819 격자판의 숫자 이어붙이기입니다.포인트제가 생각한 포인트는 다음과 같습니다.4X4의 격자시작점이 16개완전탐색 가능성총 7개의 길이.16 * 4^6 = 2^16의 작업Java기준 4초 내 가능 => 완전탐색 가능DFS(재귀)를 통한 탐색각 칸을 시작점으로 재귀적으로 탐색하여 경로를 구성.각 숫자는 중복을 허용하지 않는 점. => HashSet 사용 소스코드package SWExpert.Implementation;import java.io.BufferedReader;import java.io.IOException;import java.io.I..
[CI/CD] Github Action 문법 및 사용법 정리 제가 공부한 내용을 정리하는 블로그입니다. 아직 많이 부족하고 배울게 너무나도 많습니다. 틀린내용이 있으면 언제나 가감없이 말씀해주시면 감사하겠습니다😁해당 포스팅은 Github Action 사용법 정리입니다. 서론GitHub Actions는 소프트웨어 워크플로우를 자동화하는 도구입니다. 이를 통해 코드를 빌드하고, 테스트하고, 배포하는 과정을 간소화할 수 있습니다. 특히 GitHub Actions는 YAML 파일을 기반으로 정의되며, 다양한 이벤트(예: push, pull request, cron 등)에 따라 실행됩니다.이번 포스팅에서는 GitHub Actions의 기본 개념과 함께, API를 기능별로 자동화하거나 Python 프로젝트에서 유용하게 사용할 수 있는 예제를 소개합니다. Github Act..