본문 바로가기
반응형

프로그래밍500

도커 데스크톱(Docker desktop) 설치하고 실행해보자 도커 데스크톱(Docker desktop) 설치하기 가장 최근에 나온 도커 설치 도구는 도커 데스크톱(Docker desktop)이다. 사용하기 편하고 UI가 이쁘다. 하지만 아래의 사양을 요구한다. 참고하도록 하자. 윈도우에서 이를 사용하기 위해서는 윈도우 10 프로(혹은 엔터프라이즈 교육용) 이상 SLAT(Second Level Address Translation)을 지원하는 64비트 CPU BIOS에서 하드웨어 가상화 지원 기능을 활성화 맥의 경우 2010년 이후 출시된 기종, macOS 10.13 이상이어야 한다. 해당 조건을 만족하지 못한다면 도커 툴박스(Docker Toolbox)를 설치하도록 하자. 도커 툴박스는 오라클 버추얼박스(Oracle VirtualBox)를 기반으로 하며 윈도우 7,.. 2024. 3. 25.
C#의 커링(Curring) 커링(Curring)이란?커링이란 순서에 따라 인수의 구조를 변경하는 간단한 구조화 기법이다. 커링은 n개의 인수를 가지는 함수를 단일 인수를 가지는 n개의 함수로 변환하는 것으로, 단일 인수만 가질 수 있는 람다 함수의 한계를 극복하기 위해서 탄생했다.비 커링(Non-Curring) 예제NonCurried Method 파일에 포함된 다음 코드를 살펴보자.public partial class Program{ public static int NonCurriedAdd(int a, int b) => a + b;} 이 함수는 인수로 전달받은 a와 b의 합을 반환한다. 이와 같은 함수는 굉장히 자주 사용하는 유형인데, 이 함수를 사용하는 예는 다음과 같다.public partial class Program{.. 2024. 3. 25.
일급 함수(First-class function) vs 고차 함수(Higher-order function) 일급 함수(First-class Function) 프로그래밍 언어에서 함수(Function)를 일급 시민(First-class Citizen)으로 취급하는 것을 말한다. 즉, 함수를 변수에 할당하거나 파라미터로 전달하고 반환값으로 함수를 반환하는 등을 할 수 있는 언어를 말한다. 이러한 언어로 C#, C++, python, javascript 등이 있다. 고차 함수(Higher-order Function) 고차 함수는 하나 이상의 함수를 인자로 받거나 함수를 결과로 반환하는 함수를 말한다. 즉, 다른 함수에서 작용하는 함수이다. 고차 함수(Higher-order Function) 예제 map() function => select() function using System; using System.Coll.. 2024. 3. 25.
함수형 프로그래밍 관련 개념 정리 함수형 프로그래밍에 대해서 함수형 프로그래밍은 다음과 같은 테크닉들을 사용하는 것이라고 여겨지고 있다. 일급 함수(First-class function) 익명 함수(Lambda function) 클로져(Closure) 커링(Curring) 대수적 데이터 타입(Algebraic datatype) 다른 자료형의 값을 가지는 자료형 대수적 데이터 타입에는 곱타입(product type)과 합타입(sum type)이 존재함 부분으로 전체를 나타내는 타입 불변성(Immutable) 재귀 함수(Recursive function) 참조 투명성(Referential transparency) 순수 함수(Pure function) 고차 함수(Higher-order function) 지연 평가(Lazy evaluation).. 2024. 3. 22.
순열과 조합 관련 코드 모든 숫자 조합을 출력 using System; using System.IO; class Program { static void Main(string[] args) { var sw = new StreamWriter(Console.OpenStandardOutput()); var sr = new StreamReader(Console.OpenStandardInput()); var input = sr.ReadLine().Split(); var num1 = Int32.Parse(input[0]); var num2 = Int32.Parse(input[1]); var ints = new int[num1]; Combination_DFS(sw, ints, 0, 0, num2); sw.Close(); sr.Close();.. 2024. 3. 22.
C# [백준 BAEKJOON] 2981번 검문 문제 트럭을 타고 이동하던 상근이는 경찰의 검문을 받게 되었다. 경찰은 상근이가 운반하던 화물을 하나하나 모두 확인할 것이기 때문에, 검문하는데 엄청나게 오랜 시간이 걸린다. 상근이는 시간을 때우기 위해서 수학 게임을 하기로 했다. 먼저 근처에 보이는 숫자 N개를 종이에 적는다. 그 다음, 종이에 적은 수를 M으로 나누었을 때, 나머지가 모두 같게 되는 M을 모두 찾으려고 한다. M은 1보다 커야 한다. N개의 수가 주어졌을 때, 가능한 M을 모두 찾는 프로그램을 작성하시오. 입력 첫째 줄에 종이에 적은 수의 개수 N이 주어진다. (2 ≤ N ≤ 100) 다음 줄부터 N개 줄에는 종이에 적은 수가 하나씩 주어진다. 이 수는 모두 1보다 크거나 같고, 1,000,000,000보다 작거나 같은 자연수이다. .. 2024. 3. 22.