본문 바로가기

반응형

Programming

(91)
[Codewars] Moving Zeros To The End 문제 풀이 C# 코딩테스트 문제 Write an algorithm that takes an array and moves all of the zeros to the end, preserving the order of the other elements. ex) Kata.MoveZeroes(new int[] {1, 2, 0, 1, 0, 1, 0, 3, 0, 1}) => new int[] {1, 2, 1, 1, 3, 1, 0, 0, 0, 0} 풀이 public static int[] MoveZeroes(int[] arr) { return arr.OrderBy(x => x == 0).ToArray(); } 문제 링크 : https://www.codewars.com/kata/52597aa56021e91c93000cb0
코딩테스트 사이트 알고리즘 플랫폼 추천 프로그래머스 : https://programmers.co.kr/ 후보 : 백준, 코드워즈, 코딜리티, 프로그래머스, 해커랭크 고려 요소 기업에서 코딩 테스트시 많이 쓰는지 풀 문제가 충분히 있는지 난이도 별 분리가 잘 되어있는지 기업 코딩테스트 응시 시 실제로 이용했던 플랫폼 1. 프로그래머스(44%) 2. 해커랭크(33%) 3. 코딜리티(22%)
C# 버전 지금 나는 어떤 버전의 C#을 쓰고 있을까? 최신 C# 컴파일러는 프로젝트의 Target Framework를 기반으로 기본 버전을 결정한다. (Visual Studio 2019 이상) 즉, 명시적으로 바꾸지 않았다면 현재 프로젝트의 Target Framework에 따라 C# 버전이 결정된다. Target Framework Version C# Default Version .NET 6.x C# 10.0 .NET 5.x C# 9.0 .NET Core 3.x C# 8.0 .NET Core 2.x C# 7.3 .NET Standard 2.1 C# 8.0 .NET Standard 2.0 C# 7.3 .NET Standard 1.x C# 7.3 .NET Framework All C# 7.3 C# 버전을 명시적으로 설..
주석 (feat.Clean Code, 읽기 좋은 코드가 좋은 코드다) 서론 재밌게 읽었던 두 책(Clean Code, 읽기 좋은 코드가 좋은 코드다)에서 주석에 대해 조금은 상이한 의견을 말하고 있어 나는 주석에 대해 어떤 태도를 가지면 좋을지 정리를 해보고 싶어 남기는 기록 본론 Clean Code 주석은 나쁜 코드를 보완하지 못한다. 코드에 주석을 추가하는 일반적인 이유는 코드 품질이 나쁘기 때문이다. 주석으로 설명하려고 애쓸 시간을 코드 품질 개선에 시간을 투자하라. 의도는 코드로 표현하라. 그럼에도 써야 한다면 아래와 같이 좋은 주석의 예시를 참고하자. 더보기 법적인 주석 // Copyright (C) 2021 by hyolog, All right reserved. 결과를 경고하는 주석 // 여유 시간이 충분하지 않다면 실행하지 마십시오. public void Do..
[프로그래머스] 배달 문제 풀이 C# 코딩테스트 문제 링크 : programmers.co.kr/learn/courses/30/lessons/12978 문제 이해 후 DFS를 생각하고 구현 public int solution(int N, int[,] road, int K) { var visitedVillages = new Dictionary(); dfs(road, 1, visitedVillages, K); return visitedVillages.Count(); } 방문 기록용 Dictionary 생성. 를 기록한다. 처음엔 만 type으로 기록하려 했지만 특정 마을(V)을 한번 방문했다는 이유로 검사하지 않으면 이후에 나오는 더 짧은 거리로 인해 V를 통해 갈 수 있는 마을들을 체크하지 못할 수 있으므로 남은 거리를 기록하도록 수정했다. private..
Using custom class as C# Dictionary key type 요약 : 직접 만든 클래스를 Dictionary의 key로 사용하고 싶을 경우 추가적으로 해야 할 작업을 알아본다. 1. 아래와 같이 Point class를 만들고 좌표가 같을 경우 같은 Point로 인식하게 하고 싶다. public class Point { public Point(int x, int y) { X = x; Y = y; } public int X { get; set; } public int Y { get; set; } } 현재 상태에서 좌표가 같은 두 Point를 Dictionary에 Add()하면 예외 없이 정상적으로 추가된다. var p1 = new Point(0, 0); var p2 = new Point(0, 0); var points = new Dictionary(); points...

반응형