IEnumerable 사용 팁
·
C#
1. 요소의 유무 확인: Count() != 0 보다는 Any()를 사용하자 자주 IEnumerable에 요소가 있는지 확인할 때 Count() != 0을 사용하는 경우가 있습니다. 그러나 Count()는 각 요소의 수를 O(n)의 시간에 계산합니다. 즉, 요소가 n개 있을 경우 n번의 연산이 필요하게 됩니다. public static int Count(this IEnumerable enumerable) { var count = 0; using(var enumerator = enumerable.GetEnumerator()) { while (enumerator.MoveNext()) count++; } return count; } 이와 대조적으로, Any()는 O(1)의 시간에 요소의 유무만을 확인합니다. ..
백준 알고리즘 1264번 : 모음의 개수
·
BaekJoon
1차 시도 ( 실패 ) 더보기 namespace BaekJoon; public class VowelCount { static char[] vowel = new char[] { 'a', 'e', 'i', 'o', 'u' }; static char[] delimiter = { '!', '\n', '?', '.' }; static List inputText = new List(); public static void Main() { while (true) { Input(); if (inputText.Last().Contains("#")) break; } foreach (string text in inputText) { if (string.IsNullOrEmpty(text)) continue; Console.Wr..
Main 함수란??
·
C#
안녕하세요, 여러분! 오늘은 C# 프로그래밍 언어에서 가장 기본적인 부분 중 하나인 Main 함수에 대해 자세히 알아보겠습니다. 프로그래밍을 처음 시작하는 분들도 이해하기 쉽게 설명하려고 노력했으니, 함께 따라와 주세요! Main함수란? C#에서의 Main 함수는 프로그램의 시작점(entry point)입니다. 즉, 운영 체제가 프로그램을 실행할 때 가장 먼저 호출하는 함수입니다. 여러분이 작성한 코드 중 어디서부터 실행을 시작해야 할지를 알려주는 역할을 합니다. Main 함수의 구조 기본적인 Main 함수의 구조는 다음과 같습니다 using System; class Program { static void Main(string[] args) { // 프로그램 실행 시 수행될 코드 } } using Sys..
Flutter : 다양한 스타일의 버튼
·
Flutter
Flutter는 앱의 사용성을 향상시키기 위한 다양한 버튼 스타일을 제공합니다. 이번 포스트에서는 Flutter에서 사용할 수 있는 다양한 버튼 유형들에 대해 자세히 살펴보겠습니다. ElevatedButton 이전에는 RaisedButton으로 알려져 있던 이 버튼은 눌렀을 때의 입체감을 주는 디자인을 가지고 있습니다. ElevatedButton( onPressed: () { // 버튼 클릭 시 실행될 코드 }, child: Text('ElevatedButton'), ) TextButton FlatButton의 새로운 이름인 TextButton은 배경 없이 텍스트만으로 구성된 간단한 버튼입니다. TextButton( onPressed: () { // 버튼 클릭 시 실행될 코드 }, child: Text(..
C# 8의 System.Index 및 System.Range
·
C#
C# 8은 여러 가지 새로운 기능을 가져왔는데, 그 중 하나는 컬렉션의 인덱싱과 슬라이싱을 위한 새로운 System.Index 및 System.Range 타입입니다. 이 글에서는 이러한 추가 기능에 대해 자세히 알아보고, 더 간결하고 표현력 있는 코드를 작성하는 방법을 소개하겠습니다. System.Index C# 8 이전에는 배열이나 리스트에서 끝에서부터 요소에 접근하려면 일부 계산을 수행해야 했습니다. System.Index를 사용하면 이 과정이 더 직관적으로 됩니다. code int[] numbers = { 0, 1, 2, 3, 4, 5 }; Index lastElement = ^1; // 마지막 요소를 나타냅니다. Console.WriteLine(numbers[lastElement]); // 출력:..
백준 알고리즘 1330번 : 두 수 비교하기
·
BaekJoon
문제에 A,B가 주어진다고 써있지만 예제 입력이라는 부분이 있는걸 보고 이와같은 코드를 작성했다. using System; namespace BaekJoon { public class _330 { public static void Main() { Console.WriteLine(); string[] number = Console.ReadLine().Split(' '); int.TryParse(number[0], out int a); int.TryParse(number[1], out int b); if(IsInRange(a) && IsInRange(b)) { if (a > b) Console.Write(">"); else if (a < b) Console.Write(""); else if (a < b) C..
Animation Preview Auto Play
·
Unity/Tip
더보기 필자는 Unity로 게임을 개발하고 있다. 현재 개발에 사용중인 오브젝트의 Animation은 300개가 넘어간다. 이전에는 PreView의 Play 버튼을 눌러 일일이 하나씩 재생시켜 확인을 하였는데 이제는 이또한 귀찮아졌다... GPT 4 사용 우리의 멍청한 친구 GPT에게 "I want the preview to play automatically when an animation file is selected." 라고 질문을 했다. #if UNITY_EDITOR using UnityEngine; using UnityEditor; using UnityEditor.Animations; [InitializeOnLoad] public class AutoPlayAnimationPreview { stat..
Git : rebase, merge, 그리고 stash
·
Git
Git은 다양한 고급 기능을 제공하여 복잡한 작업 흐름에 대응할 수 있게 해줍니다. 이 글에서는 Git의 rebase, merge, 그리고 stash에 대해 알아보겠습니다. rebase vs merge 두 명령어 모두 브랜치 간의 변경사항을 통합하는 데 사용되지만, 사용 방식과 결과가 다릅니다. merge merge는 두 브랜치를 합칠 때, 두 브랜치의 공통 조상과 각 브랜치의 최신 커밋을 사용하여 새로운 커밋을 생성합니다. $ git checkout main $ git merge feature-branch 이렇게 하면 feature-branch의 모든 변경사항이 main 브랜치에 통합됩니다. 장점 : 원래의 브랜치 히스토리가 유지됩니다. 단점 : 복잡한 브랜치 히스토리가 생성될 수 있습니다. rebas..