-
[99클럽/코딩테스트 챌린지/C++] 비슷한 단어 문제 해결 과정유니얼문제 링크https://www.acmicpc.net/problem/2179 문제 상황N개의 영어 단어 중에서 가장 긴 접두사를 공유하는 두 단어를 찾는 문제를 해결해야 했습니다. 접두사의 길이를 기준으로 두 단어의 유사성을 평가하며, 조건에 맞는 단어 쌍을 입력 순서를 유지한 상태로 출력해야 했습니다.문제 원인접두사 관리단어의 접두사를 관리하기 위해 map>를 사용했지만, 접두사와 관련된 단어의 인덱스를 정확히 관리하지 못하면 결과가 틀리게 됩니다.입력 순서의 중요성접두사를 공유하는 단어 쌍이 여러 개일 경우, 가장 먼저 등장한 단어 쌍을 출력해야 했기 때문에 입력 순서를 보존하면서 결과를 처리해야 했습니다.중복 단어 처리동일한 단어가 여러 번 입력되는 경우를 처리하지 않으면 잘못된 결과가 나올 가능성이..
-
2025-01-24 01:02:13
-
[99클럽/코딩테스트 챌린지/C++] 양과 늑대 문제 해결 과정유니얼문제 링크:https://school.programmers.co.kr/learn/courses/30/lessons/92343?language=cpp 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr문제 상황문제 정의: 양과 늑대가 있는 이진 트리에서, 루트 노드에서 출발하여 최대한 많은 양을 모으고 다시 루트로 돌아오는 경로를 찾아야 한다. 늑대 수가 양 수 이상이 되는 순간 모든 양이 잡아먹히므로, 늑대 수를 양보다 적게 유지하면서 탐색을 진행해야 한다.문제 원인양방향 간선의 특성:그래프가 양방향으로 연결되어 있어, 동일한 노드를 여러 경로로 방문할 가능성이 있었다.단순히 노드 방문 여부만 체크하면 동일..
-
2025-01-23 00:35:34
-
[99클럽/코딩테스트 챌린지/C++] "특정한 최단 경로" 문제 해결 과정유니얼문제 링크:https://www.acmicpc.net/problem/1504문제 상황오늘 해결한 문제는 방향성이 없는 그래프에서 특정한 두 정점을 반드시 거치는 최단 경로를 찾는 문제였습니다. 주어진 그래프는 NNN개의 정점과 EEE개의 간선으로 구성되며, 출발점(1번 정점)에서 도착점(NNN번 정점)까지 이동하는 경로 중 V1V1V1과 V2V2V2라는 특정 정점을 반드시 통과해야 했습니다. 이때 최단 경로의 길이를 구하는 것이 목표였습니다.제약 조건:간선이 없는 경우 또는 특정 경로가 없는 경우 결과는 −1-1−1을 출력.정점은 최대 800개, 간선은 최대 200,000개로 매우 큰 입력을 처리해야 함.문제 원인문제를 해결하면서 겪은 주요 문제점은 다음과 같습니다:간선이 없는 경우에 대한 예외 처리 부..
-
2025-01-21 00:25:27
-
[99클럽/코딩테스트 챌린지/C++] 투 포인터를 활용한 [1253번 좋다] 문제 해결유니얼문제 링크https://www.acmicpc.net/problem/1253 문제 상황"좋은 수"를 찾는 문제는 주어진 N개의 수 중에서 어떤 수가 다른 두 수의 합으로 나타낼 수 있는지를 판별하는 것입니다. 초기 구현에서는 두 포인터(Two Pointers) 알고리즘을 활용했지만, 몇 가지 문제로 인해 예상한 대로 동작하지 않았습니다문제 원인현재 값을 포함한 계산 문제: 검증 대상 숫자 val 자체를 두 포인터 탐색에서 포함하여 계산한 경우가 있었습니다. 같은 숫자라도 인덱스가 다른 경우만 유효하므로, 이를 제외할 처리가 필요했습니다.벡터 초기화 문제: 고정 크기 배열을 사용하여 불필요한 메모리를 할당했으며, 입력 크기에 맞게 동적으로 초기화하지 않았습니다.Search 함수의 비효율적 구조: 두 포인터 ..
-
2025-01-16 23:49:29
-
[99클럽/코딩테스트 챌린지/C++] (가사 검색) Trie 자료구조를 활용한 가사 검색 문제 해결유니얼문제 링크 : https://school.programmers.co.kr/learn/courses/30/lessons/60060문제 상황카카오 2020 블라인드 채용 문제 중 가사 검색은 단순한 문자열 매칭 문제가 아니라, 효율성 테스트를 통과해야 하는 최적화 문제였습니다. 초기 접근 방식에서 효율성 테스트에 실패했으며, 문제의 원인을 분석한 결과, Trie 자료구조의 필요성과 활용 방식을 배우게 되었습니다.문제 원인초기에는 단순한 문자열 매칭으로 문제를 접근했지만, 효율성 테스트에서 실패했습니다. 1, 단순 문자열 매칭의 시간 복잡도각 쿼리에 대해 모든 단어를 비교하면 최악의 경우 O(Q×W×L)O(Q \times W \times L)O(Q×W×L)로, 효율성 조건을 만족하지 못함.QQQ: 쿼리 수, ..
-
2025-01-15 00:54:23
-
[99클럽/코딩테스트 챌린지/C++] 음수 사이클 감지 문제와 해결 과정 (벨만-포드 알고리즘)유니얼문제 링크 : https://www.acmicpc.net/problem/11657 풀이 과정알고리즘 선택: 벨만-포드 알고리즘벨만-포드 알고리즘은 다음 특징을 가진다:음수 가중치를 포함한 그래프에서도 최단 경로를 계산할 수 있다.음수 사이클이 존재하는 경우 이를 탐지할 수 있다.핵심 아이디어:N−1N-1N−1번 간선 완화를 수행하여 최단 거리를 계산한다.NNN-번째 간선 완화를 추가로 실행하여, 값이 갱신되면 음수 사이클이 존재한다고 판단한다.문제 상황음수 사이클이 정상적으로 동작하지 않아 " 출력 초과 " 메세지가 나옴 문제 원인음수 누적에 따른 정수 오버플로우 발생가중치의 범위가 −10,000≤C≤10,000-10,000 \leq C \leq 10,000−10,000≤C≤10,000으로 충분히 크며,..
-
2025-01-14 00:07:13
-
[JavaScript] Node.js에서 요청 및 응답 처리: 미들웨어와 라우터유니얼Node.js는 HTTP 요청과 응답을 처리하기 위한 강력한 도구를 제공합니다. 특히, Express.js는 이를 보다 효율적으로 다루기 위해 라우트와 미들웨어를 제공합니다. 이번 글에서는 라우트와 미들웨어를 기반으로 요청과 응답을 처리하는 핵심 내용을 설명하고, 간단한 예제를 통해 이해를 돕겠습니다.미들웨어미들웨어는 요청(Request)과 응답(Response) 사이에서 특정 작업을 수행하는 함수입니다.Express에서 미들웨어는 다음과 같은 형태를 가집니다:app.use((req, res, next) => { // 요청 처리 로직 next(); // 다음 미들웨어 또는 라우터로 요청 전달});미들웨어의 주요 특징1, 중간 작업 수행: 로깅, 인증, 데이터 파싱, 오류 처리 등의 작업을 수행..
-
2024-12-30 22:46:29
-
[JavaScript] Node.js에서 스트림(Streams)이해하기유니얼Node.js는 비동기 I/O 처리를 효율적으로 수행하기 위해 **스트림(Stream)**이라는 강력한 개념을 제공합니다. 스트림은 대규모 데이터를 처리하는 데 매우 유용하며, 파일 읽기/쓰기, HTTP 요청/응답, 데이터 전송 등 다양한 작업에서 사용됩니다. 이 글에서는 Node.js의 스트림 개념, 종류, 그리고 사용 예제를 다룹니다.1. 스트림(Stream)이란?스트림은 데이터를 조각(청크, Chunk) 단위로 읽고 쓰는 방식을 의미합니다. 스트림을 사용하면 데이터를 한 번에 모두 메모리에 로드하지 않고, 점진적으로 처리할 수 있어 메모리 사용을 최소화할 수 있습니다.스트림의 주요 특징비동기 처리: 데이터를 처리하는 동안 애플리케이션이 멈추지 않음.메모리 효율성: 대규모 데이터를 처리할 때 전체를 ..
-
2024-12-29 01:57:06
스킨 업데이트 안내
현재 이용하고 계신 스킨의 버전보다 더 높은 최신 버전이 감지 되었습니다. 최신버전 스킨 파일을 다운로드
받을 수 있는 페이지로 이동하시겠습니까?
("아니오" 를 선택할 시 30일 동안 최신 버전이
감지되어도 모달 창이 표시되지 않습니다.)