C#의 컴파일타임 상등 비교와 런타임 상등 비교
C#에서 각 타입의 상등 비교를 지원하기 위해 구현할 수 있는 것은 크게 세가지입니다. ==와 != 연산자 Equals 메서드 IEquatable<T> 인터페이스 ==, != 연산자 ==와 !=는 연산자이므로 결과가 정적으로 결정되어야 합니다. 실제로 이 연산자 구현체는 static 키워드가 포함됩니다. 컴파일러는 컴파일 중...
C#에서 각 타입의 상등 비교를 지원하기 위해 구현할 수 있는 것은 크게 세가지입니다. ==와 != 연산자 Equals 메서드 IEquatable<T> 인터페이스 ==, != 연산자 ==와 !=는 연산자이므로 결과가 정적으로 결정되어야 합니다. 실제로 이 연산자 구현체는 static 키워드가 포함됩니다. 컴파일러는 컴파일 중...
LINQ는 닷넷프레임워크에 포함된 기능이라 그런지 C#뿐 아니라 SQL Server와 같은 MS의 다른 제품군을 대상으로도 작성할 수 있습니다. SQL Server처럼 코드 외부의 데이터 소스에 대해 작성하는 LINQ 질의를 해석식 질의 (Interpreted Query)라고 합니다. 이와 대비해서 코드 내부의 컬렉션을 대상으로 작성하는 LINQ 질...
백준 온라인 저지는 채점하는 언어가 다양해서 32비트, 64비트 어셈블리까지도 지원합니다. 원래 어셈블리가 그렇듯 백준에서 어셈블리 코드를 통과시키려면 채점 환경을 잘 확인할 필요가 있습니다. 당연한 이야기지만, 환경을 충분히 확인하지 않으면 채점 프로그램은 WA로 채점을 마무리할 것입니다. 제 코드스페이스에서는 되는데요 어셈블리는 “제 컴퓨터에서는...
어셈블리는 매력적인 언어입니다. 직접적인 대체제가 없으면서 통상적인 개발 프로세스보다 컴퓨터 과학에 더 가까운 듯합니다. 어셈블리같은 low level 언어를 사용하는 사람들은 주로 HW벤더 소속이거나 운영체제 개발자, 보안 전문가같이 소위 말하는 “고급 인력”으로 취급됩니다. 저 역시 C언어조차 제대로 사용하지 못했을때부터 어셈블리어를 사용하는 꿈...
많은 경로 탐색 코드는 인접 행렬을 생성한 뒤 경로 탐색을 수행합니다. 인접 행렬은 주변의 인접한 다른 노드와의 연결 상태를 표현할 수 있으므로 대부분의 상황에서 유용합니다. 인접 행렬의 사용 위와 같이 1번과 4번 점이 간선으로 연결되었다고 생각해봅시다. 가상의 인접 행렬 adj는 이렇게 정의할 수 있을 것입니다. nodes = 5 # 노드...
야호 해냈다 어제 개인 프로필 사이트를 수정하며 군 복무율에 마우스를 올리면 진행도의 표현 소수점이 늘어나는 기능을 추가했습니다. 간단한 기능이지만, 구현하며 고민했던 것들을 정리하려고 합니다. onHover 계열 이벤트들은 CSS 속성 제어만을 위해 사용하는 것이 아니다. onHover 계열 이벤트들은 CSS 속성 제어만을 위해...
파이썬의 문자열 타입은 유동적이고 유연한 것처럼 보입니다. 실제로 파이썬의 문자열 타입은 강력하고 좋은, 많은 기능들을 제공합니다. >>> string = 'foo' >>> string += '_bar' >>> string[0] 'f' >>> string[0:3] 'foo' 이러한 ...
문제 파악하기 문제에서 제시한 두 개의 집합의 대칭 차집합의 원소의 개수를 구하는 간단한 문제입니다. 문제 풀어보기 각 집합의 원소의 개수가 200,000개까지 도달할 수 있음을 주목해야 합니다. 만약 입력을 그대로 배열로 전환한다면 검색 전략에 따라 다르겠지만, 어떤 값 N이 배열 안에 있는지 찾는 시간은 매우 오래 걸릴 것입니다. 시간 복...
문제 파악하기 주어진 시간 복잡도 O(?) 식을 그대로 연산하여 제한 시간 내에 해당 시간 복잡도 알고리즘으로 통과할 수 있는지 여부를 출력하는 문제입니다. 문제 풀어보기 Source: Big-O Cheat Sheet 팩토리얼 연산은 N이 커질 수록 연산 속도가 매우 느려집니다. 다른 시간 복잡도 케이스와는 달리 O(N!)은 실제로 값을 ...
문제 파악하기 문제의 요구사항은 제시된 “시야 점수와 관련된 정수”의 조건에 충족되는 배치를 출력하는 것입니다. 오른쪽을 바라보고 있는 각 돌의 정령들이 가질 수 있는 시야 점수는 j-i로 정의되어있는데, 주의할 점은 입력으로 들어오는 값이 시야 점수는 아니라는 것입니다. 정의상 시야점수는 양수만 나타날 수 있으나, 예제 입력들을 확인하면 음수 ...