본문 바로가기
반응형

프로그래밍503

C# 함수형으로 구현한 팩토리얼 함수 재귀로 구현한 팩토리얼 using System; class Program { static void Main(string[] args) { var input = Console.ReadLine(); var num = Int32.Parse(input); Console.WriteLine($"{num}! result: {Factorial(num)}"); } static long Factorial(int n) { if (n x * y); return result; } } 2024. 3. 4.
C# 표준 질의 연산자(Standard Query Operators) 표준 질의 연산자(Standard Query Operators) Enumerable 클래스는 System.Linq 네임스페이스에 속해 있으며 50개가 넘는 질의 연산자를 포함하는데, 이들을 표준 질의 연산자라고 한다. 이 연산자들은 몇 가지 기능별로 나눠볼 수 있다. Linq는 다양한 형식의 컬렉션에 질의할 수 있는 간편하고 일관된 방법이다. 지연된 실행의 개념을 구현하므로 질의는 생성 시점이 아니라 열거 과정에 실행된다. C# 지연 평가(lazy evaluation)에 대해서 지연 평가란 무엇인가? 컬렉션의 단일 요소가 미리 계산되지 않고 호출되는 시점에서 평가가 이루어지고 실행된다. 아래의 예제 코드를 확인해 보자. 즉시 평가(eager evaluation) 즉시 평가를 사용 jettstream.ti.. 2024. 2. 26.
[백준 BAEKJOON] 14928번 큰 수 (BIG) ㅇ문제 제연이는 그의 생일(2000년 3월 3일)을 기념해 자신이 가장 좋아하는 수를 20000303으로 나눈 나머지를 구해 그 수만큼 잠을 자기로 했다. 제연이가 얼마나 잠을 잘 수 있을지 구하자. 입력 첫째 줄에 제연이가 가장 좋아하는 수 N이 주어진다. (N ≤ 101,000,000) 출력 N을 20000303으로 나눈 나머지를 출력한다. 14928번: 큰 수 (BIG) 첫째 줄에 제연이가 가장 좋아하는 수 N이 주어진다. (N ≤ 101,000,000) www.acmicpc.net 풀이 코드 char에 '0'을 빼는 코드가 처음에는 이해하기 힘들었지만 여기저기 찾아보니 아스키코드 관련으로 변환하기 위한 코드였다. 관련된 내용은 아래의 글을 참고하자. using System; class Progra.. 2024. 2. 26.
C# char를 int로 바꾸는데 '0'을 빼는 이유 char를 int로 바꾸고 싶다 문자열 형식으로 된 숫자를 int 형식으로 변환하고 싶을 때, Int32.Parse()를 사용해도 되지만 해당 메서드를 사용하지 못한다면 어떻게 변환해야 하는가? string 형식의 문자열의 각 자릿수를 받아서 '0'을 빼주면 된다. '0'을 빼주는 이유는 char가 아스키코드(ASCII)로 되어있기 때문에 문자와 숫자 사이의 차이(offset)를 맞춰주기 위해서다. 아스키코드 '0'의 값 : 48 예시 : 아스키코드 '5'의 값 : 53 - 48 = 5 이런 식으로 아스키코드 '5'가 숫자 5로 변환이 가능하다. 예제 코드 using System; class Program { static void Main(string[] args) { var input = Console.. 2024. 2. 26.
C# Linq - Enumerable.Take() Enumerable.Take(IEnumerable, Int32) 메서드 public static System.Collections.Generic.IEnumerable Take (this System.Collections.Generic.IEnumerable source, int count); 매개변수 source IEnumerable 요소가 반환되는 시퀀스 count Int32 반환할 요소의 수 반환 IEnumerable 입력 시퀀스의 시작 위치로부터 지정된 수의 요소가 들어있는 IEnumerable 예제 코드 int[] grades = { 59, 82, 70, 56, 92, 98, 85 }; IEnumerable topThreeGrades = grades.OrderByDescending(grade => .. 2024. 2. 26.
[백준 BAEKJOON] 6603번 로또 문제 독일 로또는 {1, 2, ..., 49}에서 수 6개를 고른다. 로또 번호를 선택하는데 사용되는 가장 유명한 전략은 49가지 수 중 k(k>6)개의 수를 골라 집합 S를 만든 다음 그 수만 가지고 번호를 선택하는 것이다. 예를 들어, k=8, S={1,2,3,5,8,13,21,34}인 경우 이 집합 S에서 수를 고를 수 있는 경우의 수는 총 28가지이다. ([1,2,3,5,8,13], [1,2,3,5,8,21], [1,2,3,5,8,34], [1,2,3,5,13,21], ..., [3,5,8,13,21,34]) 집합 S와 k가 주어졌을 때, 수를 고르는 모든 방법을 구하는 프로그램을 작성하시오. 입력 입력은 여러 개의 테스트 케이스로 이루어져 있다. 각 테스트 케이스는 한 줄로 이루어져 있다. 첫 .. 2024. 2. 26.