온라인 C# 컴파일러 및 디버거

C#을 온라인에서 작성, 컴파일, 실행, 디버깅하세요. Visual Studio 없이 여러 파일 IDE에서 중단점, 단계별 실행, 객체 검사를 사용할 수 있습니다.

사전 설치 라이브러리
🚀 350,747 총 실행 (1 이번 달)
출력

C# 코딩 챌린지로 연습하기

이 에디터에서 직접 문제를 풀고, 샘플 테스트 실행 및 제출, AI 코드 리뷰를 받아보세요.

모든 C# 챌린지
쉬움

세 수의 평균

세 개의 정수를 평균하세요.

배우는 내용 산술나눗셈
BeginnerLearning-pathVariables
쉬움

Rectangle Perimeter

Compute the perimeter of a rectangle from its sides.

배우는 내용 산술반환값
BeginnerLearning-pathVariables
보통

유전 알고리즘의 한 세대

토너먼트 선택, 단일점 교차, 돌연변이로 다음 세대의 비트 문자열을 만듭니다.

배우는 내용 유전 알고리즘진화적 탐색
OptimizationSimulationai
아직 풀이가 없습니다
쉬움

엡실론-그리디 멀티암드 밴딧

엡실론-그리디 행동 선택으로 멀티암드 밴딧에서 탐험과 활용의 균형을 맞춥니다.

배우는 내용 탐험과 활용밴딧
강화 학습ai머신 러닝
아직 풀이가 없습니다
보통

가치 반복

벨만 최적 업데이트를 반복해 마르코프 결정 과정의 각 상태가 얼마나 가치 있는지 계산합니다.

배우는 내용 벨만 방정식MDP
강화 학습ai머신 러닝
아직 풀이가 없습니다
보통

Q-러닝 업데이트

경험의 흐름에 Q-러닝 업데이트를 적용하고 보상이 이전 상태로 거슬러 전달되는 모습을 확인합니다.

배우는 내용 Q-러닝할인된 보상
강화 학습ai머신 러닝
아직 풀이가 없습니다
보통

알파-베타 가지치기

알파-베타 가지치기를 적용한 미니맥스로 게임 트리를 평가하고, 실제로 확인한 리프 수를 셉니다.

배우는 내용 알파-베타 가지치기게임 탐색
RecursionTreesai
아직 풀이가 없습니다
보통

미니맥스 틱택토

미니맥스로 게임 트리 전체를 탐색해 틱택토의 완벽한 수를 고릅니다.

배우는 내용 미니맥스게임 트리
Recursionai
아직 풀이가 없습니다
보통

가중치 격자에서의 A* 탐색

게임과 로봇 경로 탐색의 핵심인 A*로 지형 비용 격자를 가로지르는 가장 저렴한 경로를 찾습니다.

배우는 내용 A* 탐색휴리스틱
GraphsGridsShortest-pathai
아직 풀이가 없습니다
보통

온도와 Top-K 샘플링

언어 모델처럼 다음 토큰을 고릅니다: 상위 k개 로짓을 남기고 온도를 적용한 뒤 샘플링합니다.

배우는 내용 텍스트 생성샘플링
ai머신 러닝
아직 풀이가 없습니다
어려움

멀티헤드 셀프 어텐션

입력을 쿼리, 키, 값으로 투영하고 여러 헤드에서 병렬로 어텐션을 실행한 뒤 결합합니다.

배우는 내용 멀티헤드 어텐션행렬 사영
ai머신 러닝
아직 풀이가 없습니다
보통

레이어 정규화

각 행을 평균 0, 분산 1로 정규화한 뒤 스케일과 이동을 적용합니다. 모든 트랜스포머 블록에서 쓰입니다.

배우는 내용 레이어 정규화트랜스포머
신경망ai머신 러닝
아직 풀이가 없습니다

🔷 C# / .NET 온라인 실행기 소개

CodeUtility C# Executor는 브라우저에서 바로 실제 C# 코드를 작성하고 실행할 수 있게 해 줍니다 — 설치, Visual Studio 설정, .NET SDK가 필요 없습니다. .NET 런타임과 최신 C# 언어 버전(예: C# 9 이상)을 지원하는 안전한 샌드박스로 구동됩니다.

이 도구는 내부적으로 dotnet-script를 사용해 진짜 .NET 동작으로 코드를 컴파일하고 실행합니다. LINQ, async/await, 패턴 매칭, 제네릭 같은 기본부터 고급 C# 기능까지 자유롭게 실험해 보세요.

간단한 스크립트, 함수, 로직 흐름을 테스트하거나 클래스, 구조체, 상속, 인터페이스 같은 개념을 탐구할 수 있습니다 — 모두 깔끔하고 방해 요소 없는 코딩 환경에서요.

C#을 학습하든, 알고리즘을 시험해 보든, .NET 기능을 실험하든, CodeUtility C# Executor는 어떤 브라우저에서든 C# 코드를 즉시 실행할 수 있는 빠르고 안전하며 신뢰할 수 있는 방법을 제공합니다.

단순한 코드 실행기 그 이상

하나의 실행기에서 다중 파일 편집기, 격리된 실행 터미널, 런타임별 라이브러리, 영구 작업 공간, 공유 및 실시간 협업을 이용하세요.

이 실행기는 어떻게 사용하나요?

런타임을 선택하고 파일을 열거나 만든 다음 코드를 작성하고 실행을 선택하세요. 출력은 터미널에 표시되며, 로그인한 사용자는 작업 공간에 파일을 보관하고 라이브러리를 설치하며 공유를 통해 협업할 수 있습니다.

  1. 버전을 선택하고 현재 파일을 편집하거나 작업 공간의 다른 파일을 여세요.
  2. 코드를 실행하고 요청 시 터미널에 입력한 다음 저장된 실행 기록을 확인하세요.
  3. 작업에 둘 이상의 코드 조각이 필요하면 라이브러리, 작업 공간 도구, 공유 및 채팅을 사용하세요.

💡 위에서 바로 시도해 볼 수 있는 C# 기본 개념과 예제

1. 변수와 상수 선언

C#는 강한 타입의 변수 선언을 사용합니다. 컴파일 타임 상수에는 const, 런타임 상수에는 readonly를 사용하세요.

int age = 30;
double pi = 3.14159;
char grade = 'A';
string name = "Alice";
bool isActive = true;

// 상수
const int MaxUsers = 100;
const string Company = "CodeUtility";

2. 조건문 (if / switch)

제어 흐름에는 if, else if, switch를 사용하세요.

int x = 2;
if (x == 1)
{
    Console.WriteLine("One");
}
else if (x == 2)
{
    Console.WriteLine("Two");
}
else
{
    Console.WriteLine("Other");
}

switch (x)
{
    case 1:
        Console.WriteLine("One");
        break;
    case 2:
        Console.WriteLine("Two");
        break;
    default:
        Console.WriteLine("Other");
        break;
}

3. 반복문

C#는 for, while, foreach 반복문을 지원합니다.

for (int i = 0; i < 3; i++)
{
    Console.WriteLine(i);
}

int n = 3;
while (n > 0)
{
    Console.WriteLine(n);
    n--;
}

4. 배열

배열은 동일한 타입의 요소를 고정 크기로 저장합니다.

int[] numbers = { 10, 20, 30 };
Console.WriteLine(numbers[1]);

5. 리스트 조작

동적 컬렉션에는 List<T>를 사용하세요.

List<int> nums = new List<int> { 1, 2, 3 };
nums.Add(4);
nums.Remove(2);

foreach (int n in nums)
{
    Console.Write(n + " ");
}

6. 콘솔 입력/출력

기본 I/O에는 Console.WriteLine과 Console.ReadLine을 사용하세요.

Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"Hello, {name}!");

7. 함수

반환 타입, 이름, 매개변수를 사용해 메서드를 정의합니다.

int Add(int a, int b)
{
    return a + b;
}

Console.WriteLine(Add(3, 4));

8. 딕셔너리

Dictionary<TKey, TValue>는 키-값 쌍을 저장합니다.

Dictionary<string, int> ages = new Dictionary<string, int>();
ages["Alice"] = 30;
Console.WriteLine(ages["Alice"]);

9. 예외 처리

실행 시 오류는 try, catch, finally로 처리합니다.

try
{
    throw new Exception("Something went wrong");
}
catch (Exception ex)
{
    Console.WriteLine(ex.Message);
}

10. 파일 입출력

파일 작업에는 File과 StreamReader/StreamWriter를 사용하세요.

File.WriteAllText("file.txt", "Hello File");
string text = File.ReadAllText("file.txt");
Console.WriteLine(text);

11. 문자열 처리

C# 문자열은 Length, Substring, Contains 같은 메서드를 지원합니다.

string message = "Hello World";
Console.WriteLine(message.Length);
Console.WriteLine(message.Substring(0, 5));
Console.WriteLine(message.Contains("World"));

12. 클래스와 객체

C#는 클래스와 객체를 통해 객체 지향 프로그래밍을 지원합니다.

class Person
{
    public string Name;
    public Person(string name) => Name = name;
    public void Greet() => Console.WriteLine($"Hi, I'm {Name}");
}

Person p = new Person("Alice");
p.Greet();