알고리즘 문제 해결: Codeforces A-E 문제 분석 및 해법
이 문서는 Codeforces 경쟁 프로그래밍 플랫폼의 특정 라운드에서 제시된 문제들(A부터 E까지)에 대한 해설과 해결 전략을 다룹니다. 각 문제의 접근 방식과 구현 코드를 상세히 설명합니다.
A. 파이값 일치 확인
주어진 문자열이 원주율(π)의 특정 자릿수와 얼마나 일치하는지 찾아야 하는 문제입니다. 여기서는 π 값의 문자열 표현이 미리 정의되어 있으며, ...
8월 28일 08:30에 게시됨
C언어에서 10진수를 2진수로 변환하는 방법
10진수와 2진수 변환 원리
10진수 정수를 2진수로 변환할 때는 '2로 나누어 나머지를 기록하고 역순으로 배열'하는 방법을 사용합니다. 변환 과정은 다음과 같습니다:
10진수를 2로 나누어 몫과 나머지를 구합니다
몫이 0이 될 때까지 계속 2로 나눕니다
구해진 나머지들을 역순으로 결합합니다
예를 들어, 10진수 17을 2진수로 변환하는 과정:
17 ÷ 2 = 8 ... 1
8 ÷ 2 ...
8월 21일 13:51에 게시됨
C 언어에서 변수 교환 방법 3가지
프로그래밍을 하다 보면 두 변수의 값을 서로 교환해야 하는 상황이 빈번하게 발생한다. 가장 일반적인 방법은 임시 변수를 사용하는 것이지만, 면접이나 코딩 테스트에서 임시 변수 없이 값을 교환하는 방법을 물어보는 경우도 많다. 본 글에서는 C 언어를 기준으로 변수 교환의 세 가지 방법을 살펴보도록 한다.
1. 임시 변수 방식 (Three-Variable Method)
가장 기본 ...
7월 23일 11:44에 게시됨
C 언어 연산자와 이진수 변환
연산자 유형 분류
C 언어에서 사용되는 주요 연산자 카테고리:
산술 연산자: +, -, *, /, %
비트 이동 연산자: <<, >>
비트 연산자: &, |, ^
대입 연산자: =, +=, -=, *=, /=, %=, <<=, >>=, &=, |=, ^=
단항 연산자: !, ++, --, &, *, +, -, ~, sizeof, (타입)
관계 연산자: >, >=, <, <=, ==, !=
논리 연산자: &&a ...
7월 20일 16:54에 게시됨
2024년 11월 기초 알고리즘 문제 풀이
A. 구간 나누기
문자열 내에서 연속된 '1'은 서로 독립적인 구간으로 처리할 수 있다. 각 구간에 대해 최적의 분할 방식을 고려해야 한다. 길이가 \( k \) 인 연속된 1의 블록이 있을 때, 다음과 같은 전략이 최선이다:
\( k \)가 홀수면, \( \frac{k+1}{2} \) 개의 단일 1로 나누며, 이때 결과는 \( \frac{k+1}{2} \).
\( k \)가 짝수면, \( \frac{k}{2} - 1 \) ...
7월 17일 06:37에 게시됨
C++ 분기문 및 연산자 활용과 2차원 배열 구현
분기문
void CheckCondition() {
bool flag = true;
std::cout
7월 11일 22:59에 게시됨
2025년 11월 12일 알고리즘 대회 라운드 2 후기
T1: 중위값이 특정 값인 홀수 길이 부분 배열 개수 세기
주어진 순열에서 특정 수 ( b )를 중위값으로 가지는 홀수 길이의 부분 배열의 수를 구하는 문제이다.
핵심 아이디어는 각 원소를 ( b )보다 작으면 -1, 크면 1, 같으면 0으로 변환한 후, 누적합을 이용해 조건을 만족하는 쌍을 찾는 것이다.
( b )의 위치를 기준으로 오른쪽은 해시맵에 누적합을 저장하고, 왼쪽에 ...
6월 13일 22:08에 게시됨
JavaScript 연산자 심층 분석: 할당, 산술, 비교, 논리 및 비트 연산
1. 할당 연산자 (Assignment Operators)
할당 연산자는 우변의 평가 결과를 좌변의 변수나 프로퍼티에 바인딩하는 역할을 합니다. 기본적으로 우항에서 좌항으로 평가가 이루어집니다.
let baseScore = 100; // 우변의 100을 좌변 baseScore에 할당
const config = {};
config.timeout = 5000; // 객체의 프로퍼티에 값 할당
연쇄 할당을 사용할 경우, 가장 ...
6월 13일 03:52에 게시됨
Trie 자료구조 문제 풀이 분석
Luogu P6587 시퀀스 최적화
제약 조건 \(x \le 20\) 활용, ID의 하위 \(x\) 비트를 Trie 구조와 세그먼트 트리 기법으로 처리
#include<iostream>
#include<vector>
using namespace std;
typedef long long ll;
const int MAX_NODES = 4e6 + 5, MAX_ELEMS = 2e5 + 5;
int elem_count, query_count, base_data[MAX_ELEMS];
int child_nodes[MAX_ELEMS*20][2] ...
6월 9일 21:15에 게시됨
소수점 버림 조건을 만족하는 쌍 계산 및 비트 연산자 배열 최적화
문제 A: 조건부 쌍 카운팅
분수 i/j의 소수부가 0.5 미만이 되도록 하는 (i, j) 쌍의 개수를 구하는 문제입니다. 수학적으로 변형하면:
i/j - ⌊i/j⌋ < 0.5
양변에 j를 곱하면 i - ⌊i/j⌋·j < 0.5j가 됩니다. 여기서 왼쪽 항은 나머지 연산 i % j와 동일하므로, 최종 조건은 i % j < 0.5j로 단순화됩니다.
구간 패턴 분석
고정된 j에 대해 i가 0부터 n까지 변 ...
5월 27일 21:09에 게시됨