나무 막대로 정삼각형 만들기

문제 배경 나무 막대를 활용하여 정삼각형을 구성하는 방법에 대한 문제입니다. 문제 설명 n개의 나무 막대가 주어집니다. 이 중 4개의 막대를 선택하여 정삼각형을 만들 수 있는 경우의 수를 구하세요. 정답은 109+7로 나눈 나머지를 출력합니다. 입력 형식 첫 번째 줄에는 막대의 개수 n이 주어집니다. 두 번째 줄부터 n개의 줄에 걸쳐 각 막대의 길이 ai가 주어집니다 ...

7월 6일 00:09에 게시됨

프론트엔드 개발자 면접 핵심 질문 및 코딩 문제

프로젝트 업무 분배와 일정 관리 방법 작업 분배와 일정 관리는 팀원의 기술 수준을 종합적으로 고려하여 진행됩니다. 주요 접근 방식은 다음과 같습니다: 프로젝트 계획 수립: 시작 전 주요 단계, 목표, 작업 범위를 명확히 정의하고 기간을 예측합니다 작업 분할: 기능 단위로 대형 작업을 관리 가능한 작은 단위로 분해합니다 우선순위 설정: 작업 간 의존성과 ...

7월 5일 22:49에 게시됨

트리(Tree) 자료구조의 기본 개념과 활용

자료구조는 프로그램의 효율성과 직결되는 중요한 요소입니다. 다양한 자료구조 중에서도 트리(Tree)는 계층적 데이터를 효과적으로 표현하는 비선형 자료구조의 대표적인 예시입니다. 특히 웹 프론트엔드 개발에서 자주 접하는 DOM(Document Object Model)이 트리의 한 형태로 구현되어 있어, 트리에 대한 이해는 웹 개발자에게 필수적입니다. 이 글에서는 트리 ...

7월 5일 02:58에 게시됨

AtCoder ABC393 풀이: A~F번 문제 해석

A - Poisonous Oyster 문제 요약 두 사람 A, B가 4가지 음식 중 일부를 먹는다. A는 1, 2번을, B는 1, 3번을 먹는다. 각자의 상태(fine/sick)가 주어질 때, 어떤 음식이 독이 있는지 판별하라. 풀이 조건에 따라 직접 분기하면 된다. 코드 #include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr) ...

7월 5일 02:26에 게시됨

알고리즘 실습 문제 풀이 분석

1부: 재귀 문제 1: 숫자 세기 /* n=1, 결과 1 n=2, 결과 2 (12, 2) n=3, 결과 2 (13, 1) n=4, 결과 4 (14, 13, 24, 124) n=5, 결과 4 (15, 25, 125, 5) 관찰 결과: n이 홀수이면 f[n] = f[n-1] n이 짝수이면 f[n] = f[n-1] + f[n/2] */ #include <iostream> using namespace std; const int MAX = 10000; int dp[MAX]; int main() { dp[1] = 1; int n; ...

7월 5일 00:14에 게시됨

확장된 범위의 유니온-파인드 구조 및 BOI2003 팀 문제 해설

이 문제는 확장된 범위의 유니온-파인드(Union-Find) 데이터 구조를 활용한 알고리즘 문제입니다. 일반적인 유니온-파인드는 요소 간 연결 관계를 표현하지만, 이 문제에서는 추가적인 속성(친구/적 등)을 고려해야 합니다. 확장된 범위 유니온-파인드는 복수의 속성을 다루기 위해 여러 영역(domain)을 생성합니다. 예를 들어, 인물 x의 친구 관계는 x, 적은 x+n으로 매 ...

7월 4일 19:14에 게시됨

Codeforces Round 2204 풀이: A~F번 문제 해설

A. 공 던지기 간단한 시뮬레이션으로 해결할 수 있다. 현재 위치에서 지시에 따라 좌우로 이동하며, 처음 방문하는 지점의 개수를 기록하면 된다. 코드 보기#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int T; cin >> T; while (T--) { int n; st ...

7월 4일 01:15에 게시됨

C++ memset() 함수 동작 원리와 실전 활용법

memset은 <cstring> 헤더에 선언된 메모리 초기화 함수로, 바이트 단위로 값을 채우는 특성을 이해하지 못하면 예상치 못한 버그를 만들어낼 수 있다. 이 글에서는 memset의 내부 동작을 분석하고, 다양한 자료형에 대한 올바른 사용법을 살펴본다. 핵심 원리: 바이트 단위 복사 memset의 프로토타입은 다음과 같다. void* memset(void* dest, int ch, size_t cou ...

7월 2일 16:32에 게시됨

스택과 재귀: 385, 341, 394 문제 해결

385. 미니 구문 분석기 (중간) 문자열 s가 정수 중첩 리스트를 나타낸다고 가정할 때, 이를 구문 분석하는 파서를 구현하고 파싱 결과인 NestedInteger를 반환하세요. 리스트의 각 요소는 정수 또는 정수 중첩 리스트일 수 있습니다. 예제 1: <strong>입력:</strong> s = "324", <strong>출력:</strong> 324 <strong>설명:</s ...

7월 2일 04:22에 게시됨

Codeforces 라운드 #478 (Div. 2) 문제 해설

A. 아람 문자 문제 문제 설명: 아람어에서 단어는 객체만을 나타낼 수 있습니다. 아람어 단어에는 특성이 있습니다: 단어에 같은 문자가 한 번 이상 나타나지 않으면 루트입니다. 루트와 모든 순열은 동일한 객체를 나타냅니다. 단어 y의 루트 x는 y에 나타나는 모든 문자를 각 문자가 한 번만 포함하는 단어입니다. 예를 들어, "aaaa", "aa", " ...

7월 2일 03:08에 게시됨