언어 정리/c# 19

c# 기초 정리하기 - 진법변환, 및 확장형 메소드

Convert.ToString을 통한 진법 변환이 가장 간단하지만 3진법같은 특수한 진법은 표현하지 못한다이를 처리하기 위해서는 간단한 함수를 만들면 된다 또한 문자열 같은 경우 Reverse를 사용할때 IEnumerator 형식을 반환하므로 간단하게 표현하기위해 확장형 메소드를 이용해 이를 바로 변환시킬수 있다.using System.Text;namespace 알고리즘테스트{ internal class 변수 { //이진수 int _binary = 0b1011; //십진수 int _decimal = 11; //16진수 int _hex = 0x0B; public void Test() { ..

언어 정리/c# 2024.11.07

c# console Text RPG

제작 기간 : 1주일팀원 : 박건원, 이진우, 오승희, 최재성 사용 기술 : c# 1. 데이터 저장Newtonsoft.json라이브러리 활용과 인터페이스 저장을 위해 Custom JsonConverter 제작하기https://rimugiri.tistory.com/entry/c-NewtonSoftjson-%ED%99%9C%EC%9A%A9-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%80%EC%9E%A5-interface-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%B6%94%EA%B0%80" data-og-description="문제 Interface의 경우 데이터를 불러 올 상황에 JsonConvert 오류가 발생하게 된다. 따라서 이를 해결하기 위한 방안을 소개한다. 0...

언어 정리/c# 2024.05.10

c# Console 음악 출력 방법 (.wav, .mp3)

1. using System.Media; 이 라이브러리를 사용 하면 .wav파일을 콘솔 상에서 재생할 수 있다. 새로운 쓰레드를 자동으로 생성해 주어 그 쓰레드에서 작동하여 아래에서 자신이 하고싶은 동작을 구현 할 수 있다. SoundPlayer soundPlayer = new SoundPlayer("FIlePath.wav"); // 음악 반복 재생 soundPlayer.PlayLooping(); /* todo /* // 음악 종료 soundPlayer.Stop(); 단점 : 자체적으로 볼륨을 조절할 수 없다 2. NAudio.Wave 사용 Mp3 파일을 통해 음악을 재생할 수 있다. 음악의 볼륨을 코드를 통해 제어 할 수 있다. 클래스 선언 class Mp3Player { string audioFile..

언어 정리/c# 2024.01.16

c# 2차원 배열 정렬 방법

1. Linq c# 에서는 using System.Linq를 사용하여 DB시스템에서 사용하는 Select, OrderBy같은 구문을 사용할수 있다. 이를 이용하여 이차원 배열을 간단하게 정렬할 수 있다. int[,] data = new int[,] { { 80, 10 }, { 30, 60 }, { 90, 40 }, { 90, 30 } }; // 첫번째 인자를 기준으로 내림차순 정렬 // 첫번째 인자가 같을 경우 두번째 인자를 기준으로 오름차순 정렬 var sortedByLinq = Enumerable.Range(0, data.GetLength(0)) .Select(i => new { First = data[i, 0], Second = data[i, 1] }) .OrderByDescending(x => x..

언어 정리/c# 2024.01.15

c# int[,]와 int[][]의 차이점

1. int[,] 각 차원이 고정되어 있어 크기를 변경 할 수 없다. 메모리 상에서 연속적으로 배치되어 있다. 배열 상의 모든 행과 열의 크기는 일치해야 한다. int[,] ex = new int[,] { { 1, 2, 3,}, { 4, 5, 6,} }; 2. int[][] 각 차원의 배열의 배열로 구현되며 가변 배열이라고 불린다. 각 차원의 크기는 개별적인 크기로 구성될 수 있다. 메모리 상에 연속적으로 배치되어 있지 않다. int[][] ex = new int[][] { new int[] { 1, 2,}, new int[] { 3, 4, 5}, new int[] { 6, 7, 8, 9 } }; 결론 대부분 Temporal Locality와 Spatial Locality가 사용되므로 int[,]가 메모..

언어 정리/c# 2024.01.11

c# NewtonSoft.json 활용 데이터 저장 <interface 데이터 추가>

기존 저장방법https://rimugiri.tistory.com/entry/c-%EB%8D%B0%EC%9D%B4%ED%84%B0-%EC%A0%80%EC%9E%A5-NewtonsoftJson-%ED%99%9C%EC%9A%A9" data-og-description="0. 저장할 클래스 설정 class Player { // public으로 선언해 줘야 데이터 저장 및 불러오기가 가능하다 public int Hp { get; set; } public int Attack { get; set; } public int Defense { get; set; } public Player(int hp, int attack, i" data-og-host="rimugiri.tistory.com" data-og-source-ur..

언어 정리/c# 2024.01.07

c# 데이터 저장 <Newtonsoft.Json 활용>

0. 저장할 클래스 설정 class Player { // public으로 선언해 줘야 데이터 저장 및 불러오기가 가능하다 public int Hp { get; set; } public int Attack { get; set; } public int Defense { get; set; } public Player(int hp, int attack, int defense) { Hp = hp; Attack = attack; Defense = defense; } }1. 데이터 저장 -> Json파일로 저장 public void SaveData(Player player) { string FilePath = "./PlayerData.json"; // 파일경로설정 try { string json = JsonConve..

언어 정리/c# 2024.01.07

[c#] Console 다룰 때 알아두면 좋은 기능

> 1.Console.Clear() : 콘솔 화면 지우기 2.Console.ReadKey() : 키 입력 대기하기 // 키 입력이 들어 왔을 경우에만 진행 된다. if (Console.KeyAvailable) { // 키 입력을 가져온다 ConsoleKeyInfo keyInfo = Console.ReadKey(); if (keyInfo.Key == ConsoleKey.Enter) { // 엔터를 눌렀을 경우 // 원하는 동작 실행 } } 글자 색상 또는 배경 색상 변경Console.ForegroundColor = ConsoleColor.Red; // 텍스트 색상을 빨간색으로 설정 Console.BackgroundColor = ConsoleColor.White; // 배경 색상을 흰색으로 설정 커서 위치 ..

언어 정리/c# 2024.01.06

LeetCode - 733번 문제 bfs를 통한 해결

public class Solution { private Point[] dirs = new Point[] { new Point(-1, 0), new Point (1, 0), new Point (0, -1), new Point (0, 1) }; struct Point { public int X; public int Y; public Point(int x, int y) { X = x; Y = y; } } public int[][] FloodFill(int[][] image,int sr, int sc, int color) { //if 구문을 통해 무한 루프에 빠지는 것을 방지해 줘야 된다 //color와 처음 부분이 같을 경우 무한루프에 빠지게 된다 if (image[sr][sc] == color) retur..

언어 정리/c# 2024.01.02