Mgcllee

채팅 프로그램을 만들자 - 프로젝트 기본 설정하기

포스트 ‘채팅 프로그램을 만들자’ 시리즈에서는 프로젝트가 어떤 의도로 설계 되었는지부터 서버 프로그램에서 IOCP를 1개가 아닌 여러 개를 사용하도록 변경한 이유까지 프로젝트를 진행하면서 있었던 일들을 다룰 예정입니다. 최근 네트워크 프로그래밍의 기본인 네트워크 소켓을 연구하기 위해 진행하고 있는 프로젝트가 있습니다. 이 프로젝트는 다수의 클...

[C#] 문자열(string)과 내부 메서드

개인 학습을 기록한 내용을 담고 있어 추후 수정될 수 있습입니다. 문자열 문자열은 C# 에서 여러 문자를 이어붙인 자료형이라고 했습니다. 그러나 단순히 이어붙인 것 뿐만 아니라 클래스처럼 string 내부에 여러 메서드를 갖고 있습니다. 이번 포스트에서는 string의 사용과 내부 메서드들에 대해 알아보겠습니다. String 선언하기...

[프로그래머스] 예상 대진표

이 포스트는 프로그래머스 사이트의 예상 대진표 문제 풀이입니다. 문제 해결 과정 이 문제는 수학 연산을 통해서 간단하게 해결할 수 있는 문제입니다. A 선수와 B 선수가 경기를 진행하려면 두 선수의 번호는 인접한 숫자이고 두 선수 중 작은 번호를 받은 숫자가 홀수이어야 두 선수가 만날 수 있습니다. 만약 인접하지 않고, 작은 수가 홀...

[백준][1238] 파티

이 포스트는 백준 사이트의 파티 문제 풀이입니다. 문제 해결 과정 이 문제는 다익스트라 알고리즘을 활용해서 해결할 수 있습니다. 입력받은 정보를 토대로 단방향 가중치 그래프를 만든 후 (현재 마을에서 X까지 비용) + (X부터 원래 마을까지 비용)을 매번 비교하여 최댓값을 구하면 됩니다. 일반적인 다익스트라의 경우, 최단 거리를 구하...

[C#] 비트 연산자(Left/Right Shift, 논리 연산자 등)

개인 학습을 기록한 내용을 담고 있어 추후 수정될 수 있습입니다. C# 에서는 bit 단위 연산을 위한 전용 연산자를 제공하는데 그 이름이 비트 연산자 입니다. 비트 연산자는 비트 Shift 연산자, 비트 논리 연산자가 있습니다. 이번 포스트에서는 C# 의 비트 연산자를 확인해 보겠습니다. 비트 Shift 연산자 비트 Shift 연산자...

[백준][6593] 상범 빌딩

이 포스트는 백준 사이트의 상범 빌딩 문제 풀이입니다. 문제 해결 과정 이 문제는 BFS를 활용하면 쉽게 해결할 수 있습니다. 일반적인 최단거리 문제는 2차원 배열 혹은 그래프에서 구하는 형태였습니다. 그러나 이 문제는 3차원 배열의 형태에서 최단거리를 구해야하는 문제입니다. 따라서 이 문제를 구하기 위해 x축, y축에 z축을 더하여...

[C#] 기본 데이터 형식과 범위(정수, 2진수, 16진수)

개인 학습을 기록한 내용을 담고 있어 추후 수정될 수 있습입니다. 자료형은 프로그램에서 데이터를 담는 형식을 의미합니다. 프로그래밍 언어 마다 기본적으로 제공하는 자료형이 있고, 프로그래머가 직접 자료형을 만들 수도 있습니다. 이번 포스트에서는 C# 에서 제공하는 기본 자료형에 대해서 설명하겠습니다. C# 의 기본 자료형은 크게 3가지로 나...