본문 바로가기

분류 전체보기151

[양자컴퓨팅] 양자 컴퓨팅 & 큐빗 개념정리 양자 컴퓨팅이란? 양자 컴퓨팅은 컴퓨터 과학, 물리학, 수학의 여러 측면으로 이루어진 종합적 분야로서 양자역학을 활용해 기존의 컴퓨터보다 빠르게 복잡한 문제를 해결한다. 양자컴퓨팅의 목표는 터널링(전자가 벽에 통과하는 현상)을 이용해서 수학적인 연산을 하는 것이다. 나올 수 있는 양자들을 모두 확률적으로 나타낸 후 어떤 Function을 통해서 우리가 원하는 답을 도출해내는 과정을 Quantum Computation이라고 한다. Qubit 0과 1이 들어있는 상자가 있다. 이 상자는 0과 1 두개의 state를 가질 수 있고 그 두개의 확률이 각각 1/2이다. 0과 1이 동시에 존재한다라는 것이 Qubit의 개념이다. 이것은 양자역학의 상태가 겹치기상태로 존재할 수 있기 때문에 가능하다.이것을 중첩(Su.. 2022. 3. 11.
[Docker] Docker 개념 정리 Docker란? 도커란 컨테이너 기반의 가상화 플랫폼으로, 컨테이너 상에서 서버를 셋업해 놓을 수 있다. 따라서 기반 환경이 다르더라도, 언제든 내가 만든 컨테이너를 실행하면, 동일한 서버 셋업이 가능하다. Docker의 특징 도커는 컨테이너를 관리하는 플랫폼이다. 컨테이너 안에는 라이브러리, 시스템, 코드 등의 소프트웨어를 실행하는데 필요한 것들이 포함될 수 있다. 어플리케이션을 보다 빠르게 구축할 수 있는 소프트웨어 플랫폼이다. 도커를 사용하면 서버를 신속하게 배포 및 확장 가능하다. 다양한 프로그램을 컨테이너로 분리해서 동일한 인터페이스를 제공하면 배포 및 관리를 단순하게 가능하다. Docker의 아키텍처 도커는 기본적으로 클라이언트-서버 아키텍처이다. 도커 클라이언트와 데몬은 소켓이나 Restfu.. 2022. 3. 8.
[백준] 14889 스타트와 링크 dfs(백트래킹)을 이용해서 만들 수 있는 모든 조합의 경우를 다 따지는 문제이다. 처음엔 조합을 이용한 브루트포스이겠거니 생각했지만 조합을 어떻게 구현하는지 생각이 안났다.. 해서 dfs을 가지고 순열 및 조합을 구현하는 코드를 공부 한 후에 다시 문제를 풀었다. stl라이브러리 중 next_permutation으로 구할 수 있었지만, 시간복잡도가 너무 크기 때문에 직접 재귀로 구현하는 것이 낫다고 한다. 아래사이트를 참고해서 공부했다. https://paris-in-the-rain.tistory.com/35 순열, 조합 알고리즘 - DFS로 구하기(백트래킹), C++, Python 순열, 조합은 정말정말 많이 나오는데 cpp의 stl 라이브러리 중 next_permutation으로 구할 수 있다. 하.. 2022. 2. 24.
[백준] 13460 구슬 탈출 2 생각하는 과정 1. R과 B가 동시에 한쪽으로 완전히 이동해야 한다. -> R과 B의 좌표와 기울인 횟수를 담은 Queue를 하나 만들자. -> 좌표의 4방향을 탐색하는 for문에서 방향 i를 공유하여 R과 B를 이동시킬 수 있을 때까지 이동시킨다. 2. 한쪽으로 기울였을 때 R과 B가 겹치는 상황이 발생한다. -> R과 B가 움직인 거리를 비교해서 움직인거리가 적은 구슬의 좌표를 증가(혹은 감소)시킨다. 3. 2번을 잘 해결했다면 방문체크를 한 후에(아직 방문을 안했다면) next좌표를 push해준다. (이때 count증가) 이렇게 되면 R,B를 R이 0을 찾을때까지 한쪽으로 계속 기울여 가면서 최소의 count를 얻어낸다. Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16.. 2022. 2. 22.
[백준] 11055 가장 큰 증가 부분수열 [가장 긴 증가하는 부분수열] 문제와 매우 비슷한(거의 같음) 유형이다. https://www.acmicpc.net/problem/11053 가장 긴 증가하는 부분수열을 찾을 때에는 앞의 원소보다 지금원소가 크다면 길이를 1씩 더해가면서 풀었다면, 가장 큰 증가 부분수열을 찾을 때에는 합을 구해가면서 찾는다. 풀이 예시 {1, 10, 2, 5, 20}이런 수열이 있을 때, 1에서 출발한다. 자기자신이므로 합은 1이다. --> dp[1] = 1 10에 도착했다. 10>1을 만족하므로 합은 11이다. --> dp[2] = 11 2에 도착했다. 2와 앞의 원소를 하나씩다 비교하여 최댓값을 골라낸다. 2>1을 만족하므로 합은 dp[1]+2 = 3 --> dp[3] = 3 5에 도착했다. 5와 앞의 원소를 하나씩.. 2022. 2. 19.
[백준] 2293 동전1 c++ 그리디알고리즘을 사용한 동전0문제와는 달리 동전1문제는 다이나믹 알고리즘을 사용한다. 점화식 생각이 도저히 안나서 풀이를 참고했는데, 봐도 봐도 헷갈리는 개념이었다. 핵심은 이거다. n번째 동전을 한번 쓴 경우 + n번째 동전을 사용하지 않은 경우 예를 들어서 1, 2, 5원짜리 동전으로 10원을 만들려고 할 때, 5원짜리를 1번 써서 10원을 만든 경우와 5원짜리를 쓰지 않고 10원을 만든 경우로 나눌 수 있다. 이런식으로 계속 내부적으로 나누게 되면 결국 모든 가짓수를 구할 수 있다. 아래 표는 동전단위에 대한 경우의 수를 나타낸 것이다. 그림출처 https://wtg-study.tistory.com/67 Code 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 .. 2022. 2. 18.