kotlin에는 object 표현식이 있다. object 표현식은 익명 클래스의 객체를 생성한다. 일반적으로 다음과 같이 사용된다.싱글톤 클래스 객체로 사용할 때는 다음과 같이 사용한다.클래스가 명시적으로 선언되어 있지 않기 때문에 같은 객체를 새롭게 생성할 수 없다.
DP(Dynamic Programming)는 문제를 여러 작은 부분문제로 쪼개고 부분문제의 답을 재사용함으로써 속도를 빠르게 하는 기법이다.동적 계획법(動的計劃法, dynamic programming)이란 복잡한 문제를 간단한 여러 개의 문제로 나누어 푸는 방법을 말한
그래프 🎯 Keyword : Graph, DFS, BFS, Flood Fill 1. 그래프란 1-1. 개론 그래프의 정의는 다음과 같다. > 그래프는 vertex와 edge로 구성된 한정된 자료구조를 의미한다. vertex는 정점, edge는 정점과 정점을 연결
재귀 🎯 학습목표 : 재귀의 구현과 기본 요소, 성질에 대해 이해하고 직접 응용해본다. 1. 재귀란 1-1. 개론 재귀함수는 함수 내에서 자신을 다시 호출하는 함수를 말한다. 아주 간단한 예시를 들어보자면 다음과 같다. 1-2. 재귀의 흐름 팩토리얼의 정의를
POCU 소프트웨어 공학용 수학 과목은 프로그래밍에 필요한 수학적 지식에 대한 과정이다. 이 글에서는 POCU COMP1500 소프트웨어 공학용 수학 풀코스를 3개월 간 수강한 뒤 느낀점과 장단점 등을 자세히 적어보려 한다.
C언어로 프로그래밍을 하다 보면 잘못된 메모리 접근 실수를 하기도 한다. 이 경우 프로그램이 어떻게 작동할 지 예측할 수 없다. 이런 경우에 코드에 어떤 문제가 있는지 알려주는 것이 바로 Address Sanitizer이다. 이 글에서는 이런 ASan에 대해 살펴본다.
프로그램을 작성하다 보면 배열의 길이를 미리 정할 수 없는 경우가 있다. 이런 경우 매우 큰 크기의 배열을 사용하기도 한다. 하지만 불필요하게 많은 메모리가 사용될 수 있다. 그 해결책으로 제시된 것이 동적 배열이다. 동적 배열의 구현 방법과 시간복잡도를 살펴보자.
간혹 <불리언 변수> == false 형태의 코드를 작성하시는 분들이 있다. 실제로 == false가 !보다 눈에 잘 띄긴 한다. !와 == false 중 어떤 스타일이 더 나은 방법인지 알아본자.
사사오입에서 4 이하는 내리고 5 이상은 올린다. 오사오입은 영어로 'round to nearest even'으로 불린다. 사사오입과는 약간 다른 C#의 오사오입을 알아보자.
일반적인 배낭 문제인 듯 하지만 생각해볼 요소가 추가되었다. 문제의 특수한 입력값을 잘 정제하여 O(NM)의 배낭 알고리즘을 구현해보자.
Parametric Search를 적용할 수 있는 전형적인 최적화 문제이다. Parametric Search와 큐를 이용해 O(NlogN)의 알고리즘을 작성해보자.
백준 1045번 '도로' 문제를 살펴보자. Union-Find와 입력 순서의 특성을 그리디하게 이용하면 O(N^2)의 알고리즘을 작성할 수 있다.
COS Pro는 YBM IT에서 시행하는 프로그래밍 자격 시험이다. 필자는 PS에 자주 사용하던 C++로 1급에 응시했다. 운좋게도 만점(1000점)을 받아 시험에 대한 후기와 약간의 팁을 남겨보려 한다.
제 주위 사람들이 프로그래밍을 처음 공부할 때면 제게 꼭 하는 질문이 있습니다."프로그래밍 언어 책 좀 추천해줘"또는"어떤 언어부터 배워야 돼?"프로그래밍은 언어를 배우거나 연구하는 것이 아닙니다. 언어를 안다고 해서 프로그래밍을 할 줄 아는 것이 아닙니다. 프로그래밍