프로그래밍

    [C#] LINQ 원리

    [C#] LINQ 원리

    1. 핵심 정리 using System; using System.Collections.Generic; using System.Linq; class Program { static void Main() { int[] arr = {1, 2, 3, 4, 5}; IEnumerable e = arr.Select(n => n * 10); arr[0] = 0; foreach(int n in e) Console.WriteLine(n); } } 1부터 5까지 5개의 요소가 들어있는 배열이 있다. 그리고 query method를 이용하여 요소마다 * 10을 한 값을 출력하려고 한다. 이 때, 배열의 0번째 요소에 0을 넣고 출력한다면 결과가 어떻게 나올까? 어차피 열거자로 뽑은 이후에 0을 넣은것이니 그대로 10, 20, ..

    [C#] LINQ 개념 (Language INtegrated Query)

    [C#] LINQ 개념 (Language INtegrated Query)

    1. 사전 복습 using System; using System.Collections.Generic; class Program { static void Main() { int[] arr = {1, 2, 3, 4, 5}; foreach(int n in arr) Console.WriteLine(n) IEnumerable col = arr; foreach(int n in col) Console.WriteLine(n); } } 배열을 하나 만들고 foreach를 이용해 요소를 출력해보는 코드이다. 그런데 foreach의 원리는 결국 배열이 갖고있는 GetEnumerator() 메소드를 호출해 열거자를 꺼내는 방식이였다. 모든 컬렉션은 IEnumerable 인터페이스를 구현해야 하고 배열도 컬렉션이므로 GetEn..

    [C#] 코루틴 (COROUTINE) (3)

    [C#] 코루틴 (COROUTINE) (3)

    1. 코루틴 예제 using System; using System.Collections; using System.Collections.Generic; class Program { // SUBROUTINE public static int Foo() { Console.WriteLine("1"); return 10; Console.WriteLine("2"); return 20; Console.WriteLine("3"); return 30; Console.WriteLine("4"); return 40; Console.WriteLine("5"); return 50; } static void Main() { int n1 = Foo(); int n2 = Foo(); Console.WriteLine($"{n1}, {n..

    [C#] 코루틴 (COROUTINE) (2)

    [C#] 코루틴 (COROUTINE) (2)

    1. 핵심 정리 using System; using System.Collections; using System.Collections.Generic; class Node { public int data; public Node next; public Node(int d, Node n) { data = d; next = n; } } // 열거자 class IntLinkedListEnumerator : IEnumerator { public Node head = null; public Node current = null; public IntLinkedListEnumerator(Node n) { head = n; } public object Current => current.data; public bool Move..

    [파이썬] 프로그래머스 카펫

    [파이썬] 프로그래머스 카펫

    문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 빨간색 격자의 수 red는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 입..

    [C#] 프로그래머스 카펫

    [C#] 프로그래머스 카펫

    문제 설명 Leo는 카펫을 사러 갔다가 아래 그림과 같이 중앙에는 빨간색으로 칠해져 있고 테두리 1줄은 갈색으로 칠해져 있는 격자 모양 카펫을 봤습니다. Leo는 집으로 돌아와서 아까 본 카펫의 빨간색과 갈색으로 색칠된 격자의 개수는 기억했지만, 전체 카펫의 크기는 기억하지 못했습니다. Leo가 본 카펫에서 갈색 격자의 수 brown, 빨간색 격자의 수 red가 매개변수로 주어질 때 카펫의 가로, 세로 크기를 순서대로 배열에 담아 return 하도록 solution 함수를 작성해주세요. 제한사항 갈색 격자의 수 brown은 8 이상 5,000 이하인 자연수입니다. 빨간색 격자의 수 red는 1 이상 2,000,000 이하인 자연수입니다. 카펫의 가로 길이는 세로 길이와 같거나, 세로 길이보다 깁니다. 입..