분류 전체보기80 [DP] 11726 2*n 타일링 (실버3) with Python 너무 오랫동안 코딩에 손을 땐 상태여서 그런지 많이 실력이 줄었다. 그래서 일단 간단한 문제로 시작해 볼까 한다. => 점차 실버 -> 골드로 넘어가볼려고 한다. 목표는 코테를 그것도 네카라쿠배당토 되는 회사들의 코테를 무난하게 합격해 면접까지라도 가는 것이 목표이다. 문제 2×n 크기의 직사각형을 1×2, 2×1 타일로 채우는 방법의 수를 구하는 프로그램을 작성하시오. 아래 그림은 2×5 크기의 직사각형을 채운 한 가지 방법의 예이다. dp의 대표적인 문제인 타일링 문제라고 생각한다. 일단 dp이니 규칙이 있는지를 찾아보자 만약 n = 1 이라면 경우의 수는 세로인 경우 하나일 것이다. 만약 n = 2 이라면? => 세로로 2개를 만들거나 가로로 두개를 만드는 방법으로 2가지가 나온다 n = 3 이라면.. 2023. 2. 18. 알고리즘 시작 요즘 너무 힘든 일이 많았다... 지원했던 회사들은 전부 떨어지고... 맘에 들었던 회사는 최종 면접에서 떨어지느라 멘탈의 케어가 필요하였다. 그렇게 루즈하게 백수처럼 보내다가 문득 이렇게 살면 안 되겠다는 느낌을 받게 되었다. 일단 알고리즘부터 차근차근 시작해 나가보겠다. 이 글을 시작으로 가능하면 하루에 하나 이상의 문제를 풀어나가 보겠다. 화이팅! 2023. 2. 18. 스레드(2) - 스레드 with Java 본격적으로 스레드에 대해 배워보자 프로세스 실행중인 프로그램 자신의 주소 공간에서 순차적으로 실행되는 스트림 이렇게 정의 내릴 수가 있다. 스레드 프로그램 내의 단일 순차적 제어 흐름 OS 측면에선 각 스레드들은 밑에 내용들로 구성되어 있다. PC (program counter) Register Set Stack 스레드들이 서로 공유하는 것이 있는데 코드 영역 데이터 영역 OS resources ex) open files 싱글 스레드 프로세스 자 보면 스레드 하나가 있고, 위에서 설명한 대로 register, stack, pc(는 안보인다 지금은), code, data, files가 있는 것을 확인 가능하다. 멀티 스레드 프로세스 확실히 차이가 나는 것을 확인이 가능하다. 각 스레드마다 regiset, .. 2022. 12. 26. 스레드(1) - 멀티 프로세스(병렬처리) 스레드에 관한 이야기를 하기 전에 병렬 프로그램에 대해 생각을 해보자. 과거에는 나도 병렬 프로그래밍과 스레드로 프로그래밍 하는 것의 차이를 생각 못했었다. 이제 다른 것을 알게 되었으니 한번 정리하고자 하낟. 요약해서 간단하게 정리하면 병렬 프로그래밍이란 하나의 프로그램을 하나의 프로세스가 맡는 것이 아닌 n개의 멀티 프로세스를 이용하여 개발을 하는 것이다. 스레드는 최근 스레드 별로 프로세스를 할당하는 것으로 보이나 엄연히 하나의 프로세스에서 n개의 스레드를 실행하는 것과는 다른 이야기다. 멀티 스레드 같은 경우는 I/O같은 작업에서 압도적인 성능을 향상시켜주는데, 병렬처리는 CPU 관련 처리에서 성능을 향상 시켜 준다. Flynn’s Taxonomy on Parallel COmputer SISD 하.. 2022. 12. 26. 이전 1 ··· 16 17 18 19 20 다음 728x90