일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 투 포인터
- 후니의 쉽게 쓴 시스코 네트워킹
- 구현
- Network
- 스택
- 수학
- 동적계획법
- 그리디
- 플로이드-와샬
- 백트래킹
- mst
- 에라토스테네스의 체
- 세그먼트 트리
- 위상정렬
- BFS
- 알고리즘
- CS
- 이분탐색
- 완전탐색
- 문자열
- Effective Java
- JUnit 5
- 유니온 파인드
- java
- dfs
- 프로그래머스
- swea
- 시뮬레이션
- 백준
- Kotlin
목록전체 글 (291)
반갑습니다!
코틀린은 OOP(Object-Oriented Programming)와 FP(Functional Programming)을 모두 지원하는 다중 패러다임 언어이다. 함수형 프로그래밍 함수형 프로그래밍은 순수 함수를 조합해 상태 데이터 변경이나 부작용이 없는 루틴을 만들어내며 이름없는 함수 형태의 하나인 람다식을 사용해 함수를 변수처럼 매개변수, 인자, 반환값 등에 활용하는 고차 함수를 구성해 생산성을 높이는 프로그래밍 방법을 말한다. 순수 함수 (pure function) 순수 함수란 부작용이 없는 함수를 의미하는데, 여기서 부작용이 없다는 것은 동일한 입력 인자에 대해서 동일한 결과를 출력 또는 반환한다는 것이다. 즉, 멱등성을 지닌 함수를 순수 함수라고 한다. 예시를 보면서 알아보자. fun add(a: ..
함수의 정의 코틀린은 함수를 다음과 같이 선언한다. fun 함수 이름([변수 이름: 자료형, 변수 이름: 자료형, ...])[: 반환 자료형] { 표현식... [return 반환값] }이 때 []에 해당하는 부분은 생략할 수 있는 부분이다. 함수가 반환하는 값이 없는 경우는 Unit을 반환하는데, 이는 일반적으로 사용하는 void와 같은 개념이라고 이해하면 된다. 즉, Unit은 아무런 의미가 없는 반환값이다. 함수의 축약형 코틀린에서는 함수를 축약해서 쓸 수 있다는 특징이 있다. fun sum(a: Int, b: Int): Int{ return a + b }위와 같은 함수는 fun sum(a: Int, b: Int): Int = a + b또는 컴파일러의 추론을 이용해 fun sum(a: Int, b: ..
코틀린은 비트연산을 함수의 형태로 제공한다. Number.shl(bits) - 산술적 시프트 (왼쪽) Number.shr(bits) - 산술적 시프트 (오른쪽) Number.ushl(bits) - 논리적 시프트 (왼쪽) Number.ushr(bits) - 논리적 시프트 (오른쪽) Number.and(bits) - AND 연산 Number.or(bits) - OR 연산 Number.xor(bits) - XOR 연산 Number.inv() - 비트 뒤집기 fun main() { var x = 4 // 0b0100(2) 0x04(16) println("x shift left 2 -> ${x.shl(2)}") println("5 AND 4 -> ${5.and(4)}") println("Inverse 0 -> $..
2630번: 색종이 만들기 www.acmicpc.net 풀이 재귀적으로 처리하면 어렵지 않게 해결할 수 있다. 색종이는 1/4의 크기로 계속해서 나뉘어지기 때문에 길이를 1/2로 줄여가면서 색종이를 잘라주면 된다. 코드 #include using namespace std; int n, w, b; int paper[128][128]; void countPaper(int sx, int sy, int h) { int c = paper[sy][sx]; bool find = true; for (int i = 0; i < h; i++) for (int j = 0; j < h; j++) if (c != paper[sy + i][sx + j]) { find = false; break; } if (find) { if (..
1735번: 분수 합 www.acmicpc.net 풀이 최대 공약수와 최소 공배수를 이용해서 해결하는 문제이다. 분수 덧셈을 하기 위해서 분모들의 최소 공배수를 알아야한다. 최소 공배수를 구하고 나면 분자에 어떤 수를 곱해야하는지를 알 수 있으므로 덧셈 결과를 구할 수 있다. 덧셈이 끝난 뒤 분모와 분자의 최소 공배수를 구해서 기약 분수로 만들어주면 된다. 코드 #include using namespace std; int gcd(int a, int b) { if (b == 0) return a; return gcd(b, a % b); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int a1, a2, b1, b2; cin >> a1 >> b1; ci..