Programming Language
[C#] Nullable (Value Type)
[C#] Nullable (Value Type)
2020.02.26Nullable이란? Nullable Value Type은 널 값을 가질 수 없는 Value/자료형을 Null 값을 허용해주는 게 하는 새로운 타입이다. 예를 들어서, Bool은 True 또는 False만 가질 수 있지만 Nullable을 쓰면 True, False, Null까지 가지게 해 준다. Nullable 선언하기 Nullable Type은 값 형식(T)에 물음표(?)를 붙이면 된다. T? 의 예시 bool? isOlder = null; int? myAge = 12; Nullable Type은 제네릭인 System.Nullable 구조체의 인스턴스여서 Nullable로도 선언할 수 있다. Nullable의 예시 Nullable isOlder = null; Nullable myAge; 대표 이미지 ..
[Julia] 줄리아 입문하기 4 :: 표준 모듈(Standard Module)에 대한 이해
[Julia] 줄리아 입문하기 4 :: 표준 모듈(Standard Module)에 대한 이해
2019.09.09Julia에게는 3개의 중요한 Standard Module이 있습니다. Standard Modules Main: Julia를 실행했을 때, 상위-계층(top-level)이 되는 모듈, 현재 작업 중이게 되는 모듈 Core: 언어에 내장된 모든 기능이 포함된 모듈 Base: 대부분의 상황에서 유용한 기능들이 포함된 모듈 이번 포스트에서는 위의 표준 모듈에 대해 설명하겠습니다. Main Module C언어의 main함수처럼 줄리아를 실행했을 때 가장 기본으로 사용하게 되는 작업 공간은 Main Module입니다. Core Module Core Module은 말 그대로 Core입니다. 이 언어에 내장된 모든 식별자들을 담고 있습니다. 이 모듈이 없으면 아무것도 못하기 때문에 모든 모듈은 암시적으로 using ..
[Julia] 줄리아 입문하기 3 :: 모듈(Module)에 대한 이해
[Julia] 줄리아 입문하기 3 :: 모듈(Module)에 대한 이해
2019.09.04Julia의 Module이란? 관련된 함수들과 (변수와 같은) 정의들의 그룹을 저장하는 곳 분리된 작업 공간 == 새로운 전역 변수의 공간 == 다른 사람들이랑 작업할 때, 이름 충돌을 걱정할 필요가 없다 다른 모듈의 특정 식별자(함수명 or 변수명)만 노출할지 정할 수 있다. (== Importing 하는 것) module ThisIsNewModule ...여기 안에 줄리아 코드를 작성... end Module을 사용하는 방법 앞의 포스트([Julia] 줄리아 입문하기 2)에서, 현재 세션에서 Module에 있는 함수를 사용하기 위해서는 Julia에게 해당 Module을 사용하겠다고 전달을 해야 한다고 했습니다. Module을 사용한다고 하는 것은 Module을 Load 한다고 합니다. Module을 ..
[Julia] 줄리아 입문하기 2 :: 줄리아 파일의 종류, 패키지 매니저, 모듈 사용하기
[Julia] 줄리아 입문하기 2 :: 줄리아 파일의 종류, 패키지 매니저, 모듈 사용하기
2019.09.03먼저, Julia에서 쓰는 파일들에 대해서 알아봅시다. Julia의 Code는 File, Module, Package로 관리됩니다. Julia File: 줄리아 소스코드가 저장되는 Julia File은 .jl 확장자를 씁니다. Module: 관련된 함수들과 변수들을 모아놓은 분리된 작업 공간입니다. Package Manager Package Manager는 무엇인가요? 먼저 줄리아에 공식적으로 등록된 Package들은 https://pkg.julialang.org에서 확인할 수 있습니다. 줄리아는 이러한 패키지들을 Package Manager를 통해서 아주 쉽게 가져오고 삭제할 수 있습니다! (물론 패키지 매니저 말고 수동으로 가져올 수도 있습니다) Julia Package Manager를 사용해보면 정..
[Julia] 줄리아 입문하기 1 :: 줄리아 설치 및 실행
[Julia] 줄리아 입문하기 1 :: 줄리아 설치 및 실행
2019.08.21Window에서 줄리아를 시작해봅시다! 먼저 줄리아를 어떤 환경에서 할지 선택해볼까요? 줄리아는 아래의 방법들 중 자기가 편한 방법을 선택해서 사용하면 됩니다. Julia Box Julia Pro Julia Shell or REPL(Read Evaluate Print Loop) Juno (Julia사용자에게 가장 인기가 많은 IDE) Vim, Visual Code, ... 그 외 방법 1. Julia Box Julia Box 링크: https://www.juliabox.com/ Julia Box를 사용하면 Cloud 환경에서 Julia를 사용할 수 있습니다. 주피터 노트북 인터페이스도 제공해주고 패키지들도 지원을 해줘서 여러 가지로 편할 것 같습니다. 하지만 역시 Cloud 환경에서 실행하는 것이라서 느..
[Julia] 줄리아 소개와 특징 :: 빠르고 배우기 쉬운 프로그래밍 언어
[Julia] 줄리아 소개와 특징 :: 빠르고 배우기 쉬운 프로그래밍 언어
2019.08.20Introduction to JuliaC / C++ / Fortran매우 빠르다(good performance), Compute-Intensive한 task에 좋은 언어이다, 오픈소스 컴파일러가 있다, 배우기 어렵다Python / R느리다(bad performance), 오픈소스, 배우기 쉽다Matlab상대적으로 빠르다, 비싸다, 배우기 쉽다Julia빠르다, 오픈소스, 배우기 쉽다줄리아는 파이썬처럼 문법이 간결해서 배우기 쉬우면서도 성능이 좋은 언어이다. 계산을 위한 여러 가지 배려도 볼 수 있었다. 고성능 컴퓨팅(High Performance Computing, HPC)에 포트란이 많이 쓰이는데 요즘 포트란을 배울 수 있는 곳이 별로 없기도 하고 문법도 쉽지 않다. 이러한 상황에서, 쉽게 배우고 사용할..
[파이썬] 리스트 변형 :: 리스트를 원하는 형태로 바꾸기, 리스트 형변환
[파이썬] 리스트 변형 :: 리스트를 원하는 형태로 바꾸기, 리스트 형변환
2019.08.15어떤 리스트를 원하는 형태로 변형하기 파이썬은 list 안의 모든 원소를 내가 원하는 형태로 변형하기 쉽다. 나는 문자열 list를 int형 리스트로 변환할 때 많이 사용한다. 특히, 백준 문제를 풀 때 input함수나 readline함수를 사용하여 숫자를 입력 받았을 때 많이 사용한다. 그 외에도 기존 list의 원소들을 모두 제곱할 때나 원하는 형태로 바꾸고 싶을 때 유용하다!! 방법 1: map 함수 사용하기 첫 번째 방법은 map내장 함수를 사용하는 것이다. map함수는 저번에 작성한 글([파이썬] 리스트 필터링)에서 설명한 filter함수의 사용법과 비슷하다. map함수는 한 원소에 대해 원하는 대로 변형한 것을 반환하는 함수와 변형할 대상인 list가 필요하다. map함수는 다음과 같이 사용하..
[파이썬] 리스트 필터링 :: 리스트에서 원하는 요소만 추출하기
[파이썬] 리스트 필터링 :: 리스트에서 원하는 요소만 추출하기
2019.08.10어떤 리스트에서 원하는 요소만 추출하기(필터링하기) 파이썬은 list에서 아주 쉽게 원하는 요소만 추출해서 새로운 list를 만들 수 있다. 방법 1: filter 함수 사용하기 첫 번째 방법은 filter내장 함수를 사용하는 것이다. filter함수를 사용하기 위해서는 bool을 반환하는 함수와 추출할 대상인 list(또는 Iterable)가 필요하다. filter함수는 다음과 같이 사용하면 된다. 예를 들어서, 내가 originalList = [1, 2, 44, 52, 61, 7, 28, 92, 10] 위와 같은 list에서 5보다 큰 수만 뽑아내고 싶다고 해보자. 먼저, 5보다 크면 True를 반환하는 함수를 만든다. def isBiggerThanFive(x): return x>5 다음, isBig..
[C#] 구조체(struct)
[C#] 구조체(struct)
2019.07.19구조체의 정의 구조체는 관련된 변수들을 묶는 데 사용하는 값 형식입니다. 3차원 좌표 같은 것을 저장하기 위해서는 x, y, z 좌표를 float형으로 선언해서 저장하면 될 것입니다. float x;, float y;, float z; 하지만, 이 변수들은 개별적으로 존재하며 단체적으로 관리하기 어렵습니다! 이것이 따로 변수 x, y, z로 돌아다니는 것보다 뭉쳐서 저장하면 관리하고 추적하기 더 편하겠죠! 그럴 때는 구조체를 많이 씁니다. 먼저 3차원 좌표를 표현하기 위한 구조체를 만들어 봅시다! // 3차원을 표현하기 위해 만든 구조체 public struct Vector3 { public float x; public float y; public float z; } 구조체를 만들기 위해서는 struct..
[C#] 배열 - 다차원 배열, 가변 배열
[C#] 배열 - 다차원 배열, 가변 배열
2019.07.17C#에는 다차원 배열과 가변 배열이 있다. 두 종류의 배열의 차이와 선언 방법에 대해 간단히 알아보자! 다차원 배열 다차원 배열은 2차원, 3차원,... , n차원의 배열을 뜻한다. 다차원 배열을 보기 전에 먼저 1차원 배열을 살펴보자. 1차원 배열의 문법 타입[] 배열이름 = new 타입[배열크기]; 1차원 배열의 선언과 동시에 초기화 타입[] 배열이름 = new 타입[] { 요소1,요소2, ...}; // 예시 1 int[] myArray1 = new int[10]; myArray1[1] = 1; // 예시 2 int[] myArray2 = new int[] {1,2,3,4,5}; // 예시 3 string[] myArray3 = new string[] {"text1","text2","text3"};..
[C언어] Swap하기
[C언어] Swap하기
2019.07.16프로그래밍 언어로 변수의 값은 어떻게 Swap 해야 할까? 1. Swap using temporary variable 먼저 임시 변수(temporary variable)를 사용하는 방법이 있다. 내가 int형 변수 a와 b의 값을 바꿔주고 싶다고 해보자. int a = 3; int b = 5; 만약에 내가 a = b의 원래 값; b = a의 원래 값; 위와 같은 형식으로 두 변수의 값을 바꿔주려면 임시 변수가 하나 필요하다. 왜냐하면, 내가 a = b를 하는 순간 a의 원래 값은 b의 값으로 덮어씌워 져서 잃어버리기 때문이다. 내가 a = b를 하고 싶은데 a의 원래 값도 보존하고 싶다면 어떻게 해야 할까? int temp = a; 위와 같이 임시 변수(temp)에 a값 원래 값을 저장해 놓고 a에 b값..
[C언어] 소수 구하기
[C언어] 소수 구하기
2019.07.08소수를 구하는 알고리즘은 여러 가지가 있다. 1 ~ 100까지의 소수를 출력하는 문제를 예로 들어서 알고리즘들을 간단히 정리해 보자. 더보기 소수(Prime Number)의 정의: 소수는 1보다 크고 그 숫자(자신)보다 작은 수 2개를 곱해서 만들 수 없는 수다. 2는 1보다 크고 2(자신)보다 작은 수(즉, 1)를 2개를 곱해서 만들 수 없으므로 소수이다. 10은 합성수(Composite Number: 1보다 크고 소수가 아닌 수)이다. ∵ 10 > 1, 2 × 5 = 10 문제: 1부터 100까지의 숫자 중 소수를 모두 출력해 보자. [방법 0] 그냥 풀어보기! (가장 간단한 방법!) 소수를 어떻게 구할까? 간단히 생각해보면 어떤 수가 소수이려면 내가 구하고자 하는 수(n)가 1보다 크고 n보다 작은..