문제 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해 주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰인 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0 타일을 두 개 붙인 한 쌍의 00 타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수열을 만들 수 없게 되었다. 예를 들어, N=1일 때 1만 만들 수 있고, N=2일 때는 00, 11을 만들 수 있다. (01, 10은 만들 수 없게 되었다.) 또한 N=4일 때는 0011, 0000, 1001, 1100, 1111 등 총 5개의..
문제 지원이에게 2진 수열을 가르쳐 주기 위해, 지원이 아버지는 그에게 타일들을 선물해 주셨다. 그리고 이 각각의 타일들은 0 또는 1이 쓰여 있는 낱장의 타일들이다. 어느 날 짓궂은 동주가 지원이의 공부를 방해하기 위해 0이 쓰인 낱장의 타일들을 붙여서 한 쌍으로 이루어진 00 타일들을 만들었다. 결국 현재 1 하나만으로 이루어진 타일 또는 0 타일을 두 개 붙인 한 쌍의 00 타일들만이 남게 되었다. 그러므로 지원이는 타일로 더 이상 크기가 N인 모든 2진 수열을 만들 수 없게 되었다. 예를 들어, N=1일 때 1만 만들 수 있고, N=2일 때는 00, 11을 만들 수 있다. (01, 10은 만들 수 없게 되었다.) 또한 N=4일 때는 0011, 0000, 1001, 1100, 1111 등 총 5개의..
목차 객체 지향 프로그래밍과 함수형 프로그래밍은 둘 다 프로그래밍 패러다임의 한 종류이며, 여기서 패러다임이란 단순히 말하자면 프로그래밍을 무엇으로 정의할 것인가에 대한 관점이라고 정리할 수 있다. 이런 맥락에서, 본격적으로 두 패러다임에 관해 정리하기 전에 근본적인 차이를 말하자면 객체 지향 프로그래밍은 "프로그래밍은 상호작용하는 객체의 집합이다."라는 관점을 가진 패러다임이며 함수형 프로그래밍은 "프로그래밍은 연속된 함수의 집합이다."라는 관점을 가진 패러다임이라 정리할 수 있다. 추가로 객체 지향 프로그래밍은 일반적으로 명령형 프로그래밍으로, 함수형 프로그래밍은 일반적으로 선언형 프로그래밍으로 작성한다는 차이도 있다. 여기서 명령형/선언형 프로그래밍 역시 프로그래밍 패러다임의 한 종류이며, 대략 아..
문제 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍으로 구하는 알고리즘을 배웠다. 재귀호출에 비해 동적 프로그래밍이 얼마나 빠른지 확인해 보자. 아래 의사 코드를 이용하여 n의 피보나치 수를 구할 경우 코드1 코드2 실행 횟수를 출력하자. 피보나치 수 재귀호출 의사 코드는 다음과 같다. fib(n) { if (n = 1 or n = 2) then return 1; # 코드1 else return (fib(n - 1) + fib(n - 2)); } 피보나치 수 동적 프로그래밍 의사 코드는 다음과 같다. fibonacci(n) { f[1]
문제 오늘도 서준이는 동적 프로그래밍 수업 조교를 하고 있다. 아빠가 수업한 내용을 학생들이 잘 이해했는지 문제를 통해서 확인해보자. 오늘은 n의 피보나치 수를 재귀호출과 동적 프로그래밍으로 구하는 알고리즘을 배웠다. 재귀호출에 비해 동적 프로그래밍이 얼마나 빠른지 확인해 보자. 아래 의사 코드를 이용하여 n의 피보나치 수를 구할 경우 코드1 코드2 실행 횟수를 출력하자. 피보나치 수 재귀호출 의사 코드는 다음과 같다. fib(n) { if (n = 1 or n = 2) then return 1; # 코드1 else return (fib(n - 1) + fib(n - 2)); } 피보나치 수 동적 프로그래밍 의사 코드는 다음과 같다. fibonacci(n) { f[1]
목차 한동안 WebFlux로 개발을 하면서 제목에 쓰인 것들에 대해 몸으로 배울 수 있었다. 그러나 여전히 막연한 부분이 있고, 비동기와 논블로킹이 헷갈릴 때도 있어서 오랜만에 최대한 간결하게 핵심만 정리하고 넘어가기. Synchronous execution, Asynchronous 요약부터 하고 들어가자면, 둘의 차이는 결괏값 리턴 순서가 요청 순서를 지키느냐(동기) 아니냐(비동기) 하는 것이다. 조금 덜 직관적으로 말하자면 둘의 차이는 호출된 요청의 결과를 어느 쪽에서 처리하느냐 하는 데 있다고 볼 수도 있다. 결과는 당연히 호출한 쪽에서 신경 써야 하는 거 아닌가? 싶지만 아니다. 위 그림을 보면 알 수 있듯이, 동기 처리의 경우 B메서드를 호출한 A가 작업 완료 여부를 처리한다. 따라서 여러 작업..
목차 Program, Process, Thread 프로그램, 프로세스, 그리고 스레드는 모두 컴퓨터에서 실행되는 코드를 가리킨다. 하지만 당연하게도 중요한 차이점들이 있는데, 짧게 정리하면 아래와 같다. 프로그램 프로그램은 실행 가능한 코드와 데이터의 집합이다. 실행 파일이나 라이브러리 형태로 디스크에 저장되며 실행되기 전에 디스크에서 메모리로 로드되는데, 이를 '프로그램 인스턴스'라고 한다. 프로세스 위에서 말한 '프로그램 인스턴스'가 바로 프로세스이다. 다시 한번 정리하자면 프로그램이 실행되어 운영체제에 의해 메모리상에 올라가면 이를 프로세스라 부른다. 따라서 운영체제로부터 자원을 할당받는 작업의 단위라 볼 수 있으며, 프로세스 사이에는 자원이 공유되지 않는다. 이 때문에 Context Switchi..
문제 재귀적인 패턴으로 별을 찍어 보자. N이 3의 거듭제곱(3, 9, 27,...)이라고 할 때, 크기 N의 패턴은 N×N 정사각형 모양이다. 크기 3의 패턴은 가운데에 공백이 있고, 가운데를 제외한 모든 칸에 별이 하나씩 있는 패턴이다. *** * * *** N이 3보다 클 경우, 크기 N의 패턴은 공백으로 채워진 가운데의 (N/3) ×(N/3) 정사각형을 크기 N/3의 패턴으로 둘러싼 형태이다. 예를 들어 크기 27의 패턴은 예제 출력 1과 같다. 입력 첫째 줄에 N이 주어진다. N은 3의 거듭제곱이다. 즉 어떤 정수 k에 대해 $N=3^{k}$이며, 이때 1 ≤ k < 8이다. 출력 첫째 줄부터 N번째 줄까지 별을 출력한다. 풀이 오랜 시간이 걸려서 풀었지만 풀어놓고도 잘 이해가 가지 않는 문제이..
목차 https://ieeexplore.ieee.org/document/9359794 Does Domain-Driven Design Lead to Finding the Optimal Modularity of a Microservice? Information systems are moving into the cloud. The new requirements enforced by cloud standards are high availability, high scalability, and a reduced mean time to recovery. Due to these new requirements, information system architecture styles are also evo ieeexplor..
목차 안 그래도 VSCode의 불편함(?)과 스크립트 언어에 적응하느라 정신이 없는데 새로 배워야 할 단어가 산더미다. 그 와중에 오늘 클론코딩을 하다가 Form과 ModelForm은 다르다는 충격적인 사실을 알게 되었는데, 알아보니 조금 다른 것이 아니라 많이 다른 것 같아서, 꼭 정리해야 할 것 같아서 글쓰기 창을 열었다. 여기서는 일단 구분만 하고 한동안 적응한 후 다음 글을 써도 쓰기로 하고, 최대한 짧고 간결하게 정리해 보자. 들어가기 전에, Form과 ModelForm은 둘 다 장고에서 제공하는 클래스이다. Form Form 클래스는 일반적으로 API를 통해 들어온 입력의 유효성을 검증하는 데 사용된다. 따라서 HTML 렌더링과는 상관없는 것이 보통이며 따라서 모델과도 직접적인 연관관계를 갖지..
- Total
- Today
- Yesterday
- 파이썬
- 여행
- 칼이사
- 스프링
- RX100M5
- 맛집
- 자바
- 유럽
- 동적계획법
- 남미
- Backjoon
- a6000
- spring
- 유럽여행
- Algorithm
- 기술면접
- 알고리즘
- 면접 준비
- BOJ
- 스트림
- 야경
- 세계일주
- 세계여행
- 백준
- 지지
- 세모
- 중남미
- 리스트
- java
- Python
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |