| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
- csharp
- convert
- Process
- coding-test
- string
- File
- nullable
- IValueConverter
- logging
- windows
- chashtag
- Github
- log
- Binding
- git
- 코딩테스트
- Microsoft
- ListView
- Visual Studio
- dotNET
- Coding
- windows10
- tls
- mysql
- .net
- commit
- C#
- algorithm
- WPF
- programmers
- Today
- Total
목록csharp (78)
CHashtag
안녕하세요. 오늘은 프로그래머스 코딩테스트 연습 문제인 "예산" 을 풀어 보았습니다. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/12982 코딩테스트 연습 - 예산 S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 programmers.co.kr 문제 풀이 방법 선택 정렬을 하며 가장 작은 값부터 예산에 넣어주며 가능할 때까지 넣어줍니다. 이번 문제는 평균 약 0.22ms 정도의 속도로 테스트를 통과하였습니다. 코드 using System; public class Solution { public int solut..
안녕하세요. 오늘은 프로그래머스 코딩테스트 연습 문제인 "체육복" 을 풀어 보았습니다. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/42862 문제 풀이 방법 이번 문제의 풀이는 주석으로 달아두었습니다. 또한 이번 문제는 평균 약 2.0ms 정도의 속도로 테스트를 통과하였습니다. 코드 using System; using System.Linq; using System.Collections.Generic; public class Solution { public int solution(int n, int[] lost, int[] reserve) { foreach (int l in lost) { foreach (int r in reserve) { // 여..
안녕하세요. 오늘은 프로그래머스 코딩테스트 연습 문제인 "내적" 을 풀어 보았습니다. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/70128 문제 풀이 방법 이번 문제는 문제가 간단하여 문제 풀이를 생략하도록 하겠습니다. 이번 문제는 평균 약 0.17ms 정도의 속도로 테스트를 통과하였습니다. 코드 using System; public class Solution { public int solution(int[] a, int[] b) { int answer = 0; int length = a.Length; for(int i=0; i< length; i++) { answer += a[i] * b[i]; } return answer; } } 감사합니다.
안녕하세요. 오늘은 프로그래머스 코딩테스트 연습 문제인 "로또의 최고 순위와 최저 순위" 를 풀어 보았습니다. 문제 링크 https://programmers.co.kr/learn/courses/30/lessons/77484 문제 풀이 방법 이번 문제의 풀이는 주석으로 달아두었습니다. 또한 이번 문제는 평균 약 0.23ms 정도의 속도로 테스트를 통과하였습니다. 코드 using System; public class Solution { public int[] solution(int[] lottos, int[] win_nums) { int[] answer = new int[2]; int zeroCount = 0; int rightCount = 0; // for문보다 foreach문이 약 25%정도 더 빠릅니다..
폴더 내부의 모든 파일의 크기를 구하는 함수입니다. 단위는 byte입니다. public long GetDirectorySize(string path) { long size = 0; DirectoryInfo dirInfo = new DirectoryInfo(path); foreach (FileInfo fi in dirInfo.GetFiles("*", SearchOption.AllDirectories)) { size += fi.Length; } return size; }
// App.xaml.cs // 프로그램 시작, 종료 지점에 해당 코드를 삽입하여도 무방합니다. const string MUTEX_NAME = "SOME_UNIQUE_MUTEX_NAME"; Mutex mutex = null; App() { bool isNew; try { mutex = new Mutex(false, MUTEX_NAME, out isNew); if (!isNew) { Application.Current.Shutdown(); mutex = null; return; } } catch (Exception ex) { Application.Current.Shutdown(); } } /// /// 프로그램이 종료되기 전에 Mutex를 해제해주어야 한다. /// /// /// private void A..
C#에는 Attribute라는 유용한 친구가 있습니다. 그중 CallerMemberName을 사용하면 이 함수를 호출한 대상에 대한 이름을 인자로 받게 됩니다. 사용법은 다음과 같습니다. // Program.cs static void Main(string[] args) { SomeFunction(); // output : Main } public static void SomeFunction([CallerMemberName] string callerName = null) { Console.WriteLine(callerName); } 한가지 주의할 점은 default value를 지정해 주어야 한다는 점입니다. CallerMemberName외에도 CallerFilePath, CallerLineNumber도 ..
[DllImport("user32.dll")] static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); C#에는 키보드 입력을 할 수 있는 함수들이 존재합니다. 오늘 소개할 keybd_event라는 함수는 user32.dll 에 내장된 함수로, low level의 키보드 인풋을 제공합니다. keybd_event에는 4가지 Arguments는 다음과 같습니다. // 가상 키 코드입니다. // https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes byte bVk // 키의 하드웨어 스캔 키입니다. // https://stackov..
안녕하세요. 오늘은 파일을 업로드할 때 필요한 content-type을 파일의 확장자 별로 구하는 방법에 대해 알아보도록 하겠습니다. 다행히도 Windows에서는 해당 값에 대한 Mime-Type을 레지스트리 편집기에 정의해 두었습니다. 레지스트리 편집기에 들어가보면 여러 확장자에 대한 Content Type값이 들어있는 것을 확인하실 수 있습니다. (컴퓨터\HKEY_CLASSES_ROOT의 하위에는 .xxx와 같은 형식의 폴더가 많이 존재합니다.) 따라서 오늘은 이 값을 이용하여 확장자에 대한 mime-type(content-type)을 구해보도록 하겠습니다. 방법은 아주 간단합니다. 아래는 해당 값을 읽어오는 코드입니다. public string GetMimeType(string fileName) {..
기본적으로 .net framework 4.0에서는 tls 1.2가 지원되지 않아 https요청을 보내면 "기본 연결이 닫혔습니다 보내기에서 예기치 않은 오류가 발생했습니다." 라는 에러가 발생합니다. 이때 .net framework 버전을 4.5.2로 올려도 되지만 버전을 올릴 수 없을 경우 해결방법을 알려드리도록 하겠습니다. 아래의 함수를 선언한 뒤 프로그램이 시작 시 한번 호출해주면 해결됩니다. public void SetTls() { bool platformSupportsTls12 = false; foreach (SecurityProtocolType protocol in Enum.GetValues(typeof(SecurityProtocolType))) { if (protocol.GetHashCode..