[Programmers Lv.1] 최소직사각형
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이(dfs) 풀이(위상 정렬)
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이 💡Idea bfs + 백트래킹(조합) 엣지케이스들을 잘 고려해야 함. 백준 예제에 친절히 나와있음
🔗Link 문제 풀이 💡Idea 가장 쉽게 생각할 수 있는 방법은, 가능한 길을 전부 backtracking을 해보는 방법이다. 하지만 다음과 같은 상황을 고려했을 때, 감각적으로 모든 경로를 직접 탐색해 보는 것은 어려울 것이다. 지도(보드)의 크기 N과 M이 최대 500 ...
🔗Link 문제 풀이 💡Idea 당연히 큰 동전을 많이 사용하는 것이 더 적은 개수로 만들 수 있다. 따라서 큰 동전부터 시도해보자. 하지만 꼭 가장 큰 동전을 사용하는 것이 최적해는 아닐 수 있다. 따라서 작은 동전들의 경우도 모두 탐색해보자. 1, ...
🔗Link 문제 풀이 💡Idea 문제를 보면, 괄호 쌍을 찾는 문제와 비슷한 느낌이 들고, 스택의 동작 방식을 사용하면 좋을 것 같은 느낌이 든다. 정답 문자열을 모을 때의 편의를 위해, 스택을 안 쓰고 그냥 vector를 쓰기로 했다. (answer.insert(answer.en...
🔗Link 문제 풀이 💡Idea 목표: 가장 짧은 두 대륙간의 거리 구하기
🔗Link 문제 풀이 💡Idea backtracking으로 퀸을 하나하나 놓아보면 된다. 같은 열과 행, 대각선들에 다른 퀸이 있는지 체크해줘야 한다. 대각선은 행과 열의 합과 차가 같은지로 체크할 수 있다. 대각선 \
🔗Link 문제 풀이 💡Idea 4개의 배열을 전부 선형탐색해서 합을 구한다면, O(n4)이 걸릴 것이다. n이 4000이므로 64×1016의 연산이 필요하고, 12초에 동작하기 위해선 다른 방법을 생각해야 한다. 우선 배열을 2개씩만 합해서, AB 배열과 CD 배열을 만든다. n...
🔗Link 문제 풀이 💡Idea 피로도를 기준으로 상덕씨가 갈 수 있는 길을 정하는 식으로 구현한다면, 지금까지 이동해온 구역에 따라 다음에 갈 수 있는 구역이 달라져서, 구현이 복잡해질 것이다. 피로도 대신, 갈 수 있는 최대 높이와 최소 높이를 정해주면 갈 수 있는 구역을 판단...
🔗Link 문제 풀이 💡Idea 다음과 같은 점화식을 세워 풀면 된다. 메모리 제한이 있으므로 이전 층까지만 저장하며, 현재 층과 이전 층을 갱신해주자.
🔗Link 문제 풀이 💡Idea
🔗Link 문제 풀이 💡Idea 26개
🔗Link 문제 풀이 💡Idea 투 포인터로 수열을 순회하며 합을 추적하고, 합이 S를 넘길 때마다 최대 길이를 갱신해주면 된다. 🔑Code ```c++ #include <bits/stdc++.h> using namespace std;
🔗Link 문제 풀이 💡Idea 구하고 싶은 값을 K라고 두었을 때, 다음과 같은 식을 세울 수 있다. \(\frac{Y+K}{X+K} = Z + 1\) K에 대하여 정리하면 다음과 같다. \(K = \frac{100Y - (Z + 1)X}{Z - 99}\) 식에서도 알 수 있듯이...
🔗Link 문제 풀이 💡Idea 26개의 알파벳 중 K개를 가르칠 수 있다. 단어에 A, C, I, N, T는 꼭 들어가기 때문에, 이 철자들은 꼭 배워야 한다. backtracking으로 배울 알파벳을 선택한 후 읽을 수 있는 단어가 몇 개인지 세어보면 되겠다. 단어의 최대 길이...
🔗Link 문제 풀이 💡Idea 프로그램을 string으로 저장해두고, 실행할 때마다 불러와 읽으면 된다. 프로그램의 명령들은 vector<string> p로 저장했고, 프로그램대로 실행하는 함수func()를 구현했다. func()가 너무 길어 아래로 치워버렸다. 10^...
🔗Link 문제 풀이 💡Idea bfs문제이다. 물을 먼저 끝까지 채워보고 (물이 이동한 시간을 water에 기록), 고슴도치가 각 시간마다 물을 피해 이동할 수 있도록 bfs를 돌려주면 된다. 물은 한 곳에서 출발하는 것이 아니 반복문으로 전부 이동시켜주자. 🔑Code ```c+...
🔗Link 문제 풀이 💡Idea 간단한 투 포인터 문제.
🔗Link 문제 풀이 💡Idea 간단한 구현 문제. 남은 사진틀이 없는 경우, 추천수가 가장 적은 학생을 빼야 하고, 여러명이라면 가장 오래된 학생을 빼야 한다. 추천수와 오래된 정도에 빠르게 접근하기 위해 해시 테이블을 사용했다.
🔗Link 문제 풀이 💡Idea 가장 먼저 생각해야 하는 것은, 당연히 주사위 정보를 어떻게 저장하고 있을 것인지이겠다. 감사하게도 문제에서 단면도로 저장하라는 듯이 단면도를 그려두었다. 동서남북 각 방향으로 굴렸을 때, 주사위에 적힌 숫자들이 서로 어떻게 변하는지 고려하여 구현하...
🔗Link 문제 풀이 💡Idea 이차원배열에서의 bfs라고 생각하면 된다. 다만, 이동 조건은 각 땅의 차이가 L이상 R일 때만이다. 보통 bfs라면 queue를 썼겠지만, 나중에 방문한 땅들에 다시 접근하여 인구수를 전부 같은 값으로 설정해줘야 하기 때문에, 방문한 땅들을 따로 ...
🔗Link 문제 풀이 💡Idea 그냥 $nCk = \frac{n!}{k!(n-k)!}$의 공식대로 순차적으로 곱하고 나누면, 곱이 너무 커져서 자료형의 크기를 초과하게 된다. $nCk = \binom{n-1}{k-1} + \binom{n-1}{k}$의 공식을 사용하여 dp...
🔗Link 문제 풀이 💡Idea 9*9칸을 1~9의 숫자로 채우는 것이라, 단순하게 보면 9^81의 경우의 수가 있지만, 칸이 채워질 수록 들어갈 수 있는 숫자가 줄어들어 경우의 수가 훨씬 줄어들게 된다. 백트래킹 기법을 사용해 풀면 된다.
🔗Link 문제 풀이 💡Idea bfs 문제이다. 수직선 상에서 갈 수 있는 길이 ‘현재 지점의 2배‘와 ‘현재 지점의 10배 + 1’ 두가지라고 생각하면 된다. 현재 지점의 10배 + 1의 경우 int 범위를 초과할 수 있기 때문에 자료형을 넉넉히 long long으로 ...
🔗Link 문제 풀이 💡Idea “C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이의 거리를 최대로 하는 프로그램을 작성하시오.” 가장 인접한 두 공유기 사이의 거리를 최대로 하는 최적화 문제를 가장 인접한 두 공유기 사이의 거리를 X로 했을 때 주어진 개...
🔗Link 문제 풀이 💡Idea 주의해야 하는 케이스가 많다. 누를 수 있는 인접한 채널이 자릿수가 다른 경우 인접한 채널로 숫자 버튼을 눌러 이동할 때, 원하는 채널보다 자릿수가 하나 크거나 작을 수 있다. 숫자 버튼이 전부 고장난 경우...
🔗Link 문제 풀이 💡Idea 최단 거리(시간)를 구하는 것이기 때문에 bfs로 풀면 된다. 주의할 점은 순간 이동을 할 때는 0초가 걸린다는 점이다. 가장 빠른 시간을 구하는 것이기 때문에, 순간 이동을 하는 경우를 우선 순위를 높게 두어서 풀어야 한다.
🔗Link 문제 풀이1 풀이2 💡Idea 간단한 시뮬레이션 문제. 숫자 0~9외에 공백도 고려해야 함.
🔗Link 문제 풀이1 풀이2 💡Idea 패턴 매칭 문제이다. 바로 string에 find를 사용하는 풀이가 떠올랐다. 사용자가 누른 조작에서 비밀 메뉴 조작법이 들어있는지 매칭해보면 된다. 혹은 strstr를 사용할 수도 있겠다. g++환경에서 strstr함수가 KMP처럼 문자열...
서론 이 포스팅 한 장으로 코딩 테스트 끝내자.
🔗 Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이(dfs) 풀이(위상 정렬)
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이
🔗Link 문제 풀이 💡Idea bfs + 백트래킹(조합) 엣지케이스들을 잘 고려해야 함. 백준 예제에 친절히 나와있음
🔗Link 문제 풀이 💡Idea 가장 쉽게 생각할 수 있는 방법은, 가능한 길을 전부 backtracking을 해보는 방법이다. 하지만 다음과 같은 상황을 고려했을 때, 감각적으로 모든 경로를 직접 탐색해 보는 것은 어려울 것이다. 지도(보드)의 크기 N과 M이 최대 500 ...
🔗Link 문제 풀이 💡Idea 당연히 큰 동전을 많이 사용하는 것이 더 적은 개수로 만들 수 있다. 따라서 큰 동전부터 시도해보자. 하지만 꼭 가장 큰 동전을 사용하는 것이 최적해는 아닐 수 있다. 따라서 작은 동전들의 경우도 모두 탐색해보자. 1, ...
🔗Link 문제 풀이 💡Idea 문제를 보면, 괄호 쌍을 찾는 문제와 비슷한 느낌이 들고, 스택의 동작 방식을 사용하면 좋을 것 같은 느낌이 든다. 정답 문자열을 모을 때의 편의를 위해, 스택을 안 쓰고 그냥 vector를 쓰기로 했다. (answer.insert(answer.en...
🔗Link 문제 풀이 💡Idea 목표: 가장 짧은 두 대륙간의 거리 구하기
🔗Link 문제 풀이 💡Idea backtracking으로 퀸을 하나하나 놓아보면 된다. 같은 열과 행, 대각선들에 다른 퀸이 있는지 체크해줘야 한다. 대각선은 행과 열의 합과 차가 같은지로 체크할 수 있다. 대각선 \
🔗Link 문제 풀이 💡Idea 4개의 배열을 전부 선형탐색해서 합을 구한다면, O(n4)이 걸릴 것이다. n이 4000이므로 64×1016의 연산이 필요하고, 12초에 동작하기 위해선 다른 방법을 생각해야 한다. 우선 배열을 2개씩만 합해서, AB 배열과 CD 배열을 만든다. n...
🔗Link 문제 풀이 💡Idea 피로도를 기준으로 상덕씨가 갈 수 있는 길을 정하는 식으로 구현한다면, 지금까지 이동해온 구역에 따라 다음에 갈 수 있는 구역이 달라져서, 구현이 복잡해질 것이다. 피로도 대신, 갈 수 있는 최대 높이와 최소 높이를 정해주면 갈 수 있는 구역을 판단...
🔗Link 문제 풀이 💡Idea 다음과 같은 점화식을 세워 풀면 된다. 메모리 제한이 있으므로 이전 층까지만 저장하며, 현재 층과 이전 층을 갱신해주자.
🔗Link 문제 풀이 💡Idea
🔗Link 문제 풀이 💡Idea 26개
🔗Link 문제 풀이 💡Idea 투 포인터로 수열을 순회하며 합을 추적하고, 합이 S를 넘길 때마다 최대 길이를 갱신해주면 된다. 🔑Code ```c++ #include <bits/stdc++.h> using namespace std;
🔗Link 문제 풀이 💡Idea 구하고 싶은 값을 K라고 두었을 때, 다음과 같은 식을 세울 수 있다. \(\frac{Y+K}{X+K} = Z + 1\) K에 대하여 정리하면 다음과 같다. \(K = \frac{100Y - (Z + 1)X}{Z - 99}\) 식에서도 알 수 있듯이...
🔗Link 문제 풀이 💡Idea 26개의 알파벳 중 K개를 가르칠 수 있다. 단어에 A, C, I, N, T는 꼭 들어가기 때문에, 이 철자들은 꼭 배워야 한다. backtracking으로 배울 알파벳을 선택한 후 읽을 수 있는 단어가 몇 개인지 세어보면 되겠다. 단어의 최대 길이...
🔗Link 문제 풀이 💡Idea 프로그램을 string으로 저장해두고, 실행할 때마다 불러와 읽으면 된다. 프로그램의 명령들은 vector<string> p로 저장했고, 프로그램대로 실행하는 함수func()를 구현했다. func()가 너무 길어 아래로 치워버렸다. 10^...
🔗Link 문제 풀이 💡Idea bfs문제이다. 물을 먼저 끝까지 채워보고 (물이 이동한 시간을 water에 기록), 고슴도치가 각 시간마다 물을 피해 이동할 수 있도록 bfs를 돌려주면 된다. 물은 한 곳에서 출발하는 것이 아니 반복문으로 전부 이동시켜주자. 🔑Code ```c+...
🔗Link 문제 풀이 💡Idea 간단한 투 포인터 문제.
🔗Link 문제 풀이 💡Idea 간단한 구현 문제. 남은 사진틀이 없는 경우, 추천수가 가장 적은 학생을 빼야 하고, 여러명이라면 가장 오래된 학생을 빼야 한다. 추천수와 오래된 정도에 빠르게 접근하기 위해 해시 테이블을 사용했다.
🔗Link 문제 풀이 💡Idea 가장 먼저 생각해야 하는 것은, 당연히 주사위 정보를 어떻게 저장하고 있을 것인지이겠다. 감사하게도 문제에서 단면도로 저장하라는 듯이 단면도를 그려두었다. 동서남북 각 방향으로 굴렸을 때, 주사위에 적힌 숫자들이 서로 어떻게 변하는지 고려하여 구현하...
🔗Link 문제 풀이 💡Idea 이차원배열에서의 bfs라고 생각하면 된다. 다만, 이동 조건은 각 땅의 차이가 L이상 R일 때만이다. 보통 bfs라면 queue를 썼겠지만, 나중에 방문한 땅들에 다시 접근하여 인구수를 전부 같은 값으로 설정해줘야 하기 때문에, 방문한 땅들을 따로 ...
🔗Link 문제 풀이 💡Idea 그냥 $nCk = \frac{n!}{k!(n-k)!}$의 공식대로 순차적으로 곱하고 나누면, 곱이 너무 커져서 자료형의 크기를 초과하게 된다. $nCk = \binom{n-1}{k-1} + \binom{n-1}{k}$의 공식을 사용하여 dp...
🔗Link 문제 풀이 💡Idea 9*9칸을 1~9의 숫자로 채우는 것이라, 단순하게 보면 9^81의 경우의 수가 있지만, 칸이 채워질 수록 들어갈 수 있는 숫자가 줄어들어 경우의 수가 훨씬 줄어들게 된다. 백트래킹 기법을 사용해 풀면 된다.
🔗Link 문제 풀이 💡Idea bfs 문제이다. 수직선 상에서 갈 수 있는 길이 ‘현재 지점의 2배‘와 ‘현재 지점의 10배 + 1’ 두가지라고 생각하면 된다. 현재 지점의 10배 + 1의 경우 int 범위를 초과할 수 있기 때문에 자료형을 넉넉히 long long으로 ...
🔗Link 문제 풀이 💡Idea “C개의 공유기를 N개의 집에 적당히 설치해서, 가장 인접한 두 공유기 사이의 거리를 최대로 하는 프로그램을 작성하시오.” 가장 인접한 두 공유기 사이의 거리를 최대로 하는 최적화 문제를 가장 인접한 두 공유기 사이의 거리를 X로 했을 때 주어진 개...
🔗Link 문제 풀이 💡Idea 주의해야 하는 케이스가 많다. 누를 수 있는 인접한 채널이 자릿수가 다른 경우 인접한 채널로 숫자 버튼을 눌러 이동할 때, 원하는 채널보다 자릿수가 하나 크거나 작을 수 있다. 숫자 버튼이 전부 고장난 경우...
🔗Link 문제 풀이 💡Idea 최단 거리(시간)를 구하는 것이기 때문에 bfs로 풀면 된다. 주의할 점은 순간 이동을 할 때는 0초가 걸린다는 점이다. 가장 빠른 시간을 구하는 것이기 때문에, 순간 이동을 하는 경우를 우선 순위를 높게 두어서 풀어야 한다.
C# Socket Programming TIL: struct list 변수의 직렬화
C# Socket Programming TIL: string 변수의 직렬화
C# Socket Programming TIL: 정적 크기 변수의 직렬화
C# Socket Programming TIL: 클라이언트와 서버에서의 패킷 처리 로직 개선
C# Socket Programming TIL: PacketSession 클래스 구현
C# Socket Programming TIL: SendBuffer 클래스 도입
C# Socket Programming TIL: RecvBuffer 클래스 도입과 기능 개선
C# Socket Programming TIL: 비동기 Connect와 Connector 클래스 구현
C# Socket Programming TIL: Listener와 Session 구조의 리팩토링
C# Socket Programming TIL: BufferList와 ArraySegment의 활용
C# Socket Programming TIL: 비동기 SendQueue와 SendAsync 클래스 구현
C# Socket Programming TIL: 비동기 Receive와 Session 클래스 구현
C# Socket Programming TIL: 비동기 Accept와 Listener 클래스 구현
C# Socket Programming TIL: 서버-클라이언트 소켓 예제
C# Socket Programming TIL: struct list 변수의 직렬화
C# Socket Programming TIL: string 변수의 직렬화
C# Socket Programming TIL: 정적 크기 변수의 직렬화
C# Socket Programming TIL: 클라이언트와 서버에서의 패킷 처리 로직 개선
C# Socket Programming TIL: PacketSession 클래스 구현
C# Socket Programming TIL: SendBuffer 클래스 도입
C# Socket Programming TIL: RecvBuffer 클래스 도입과 기능 개선
C# Socket Programming TIL: 비동기 Connect와 Connector 클래스 구현
C# Socket Programming TIL: Listener와 Session 구조의 리팩토링
C# Socket Programming TIL: BufferList와 ArraySegment의 활용
C# Socket Programming TIL: 비동기 SendQueue와 SendAsync 클래스 구현
C# Socket Programming TIL: 비동기 Receive와 Session 클래스 구현
C# Socket Programming TIL: 비동기 Accept와 Listener 클래스 구현
C# Socket Programming TIL: 서버-클라이언트 소켓 예제
Docker 컨테이너 실행 및 상태 변경 명령어 정리
Apache 웹 서버
iSCSI 블록 스토리지
7. NFS 스토리지
Minimal Mistakes 테마에서 수식을 렌더링하려면 MathJax 또는 KaTeX를 사용할 수 있다. 이번 포스팅에서는 MathJax와 KaTeX의 설정 방법을 알아보고 두 방식의 차이점을 비교하고자 한다. 두 방법 모두 _includes 디렉토리에서 설정 파일을 생성하고,...
예상 읽기 시간이란? 아래와 같이 블로그 포스팅을 읽는 데 소요되는 시간을 표시하는 기능이다. (“⏱1분 소요”)
서론 글을 쓰는 도중, 글에 박스를 치고 싶어 {: .notice}를 사용해보았다. 이를 사용하니 박스 안의 글씨가 작아지고, 위 아래로 마진값이 있는 것이 맘에 들지 않았다. 그래서 맘에 드는 {: .my_notice}를 하나 새로 만들기로 했다. 기존에 minimal mista...
서론 blog를 쓰자고 다짐했지만, 여러 글들이 그저 메모 단계에서 그쳤다. 메모는 주로 Obsidian을 통해 하는데, blog 또한 obsidian을 통해 관리하면 조금이나마 손이 더 갈까해서, blog를 위한 obsidian vault를 하나 파고 설정을 하고자 한다.
MVP 재고 구조의 한계를 바탕으로 StockMovement, InventoryBalance, Reservation, CustomerAvailabilityView, 캐시, 동시성 제어를 고민합니다.
POS 판매와 PDA 입고에서 재고 변경과 이력 저장을 하나의 트랜잭션으로 묶고 Inventory 도메인 규칙으로 정합성을 지키는 과정을 정리합니다.
편의점 운영 흐름을 Inventory 중심의 도메인 모델로 단순화하고 Store, Product, Sale, Receipt 관계를 설계한 과정을 정리합니다.
편의점 운영 흐름을 WEB, APP, 점포 시스템 관점에서 이해하고 StoreOps Platform을 기획한 이유를 정리합니다.
MVP 재고 구조의 한계를 바탕으로 StockMovement, InventoryBalance, Reservation, CustomerAvailabilityView, 캐시, 동시성 제어를 고민합니다.
POS 판매와 PDA 입고에서 재고 변경과 이력 저장을 하나의 트랜잭션으로 묶고 Inventory 도메인 규칙으로 정합성을 지키는 과정을 정리합니다.
편의점 운영 흐름을 Inventory 중심의 도메인 모델로 단순화하고 Store, Product, Sale, Receipt 관계를 설계한 과정을 정리합니다.
편의점 운영 흐름을 WEB, APP, 점포 시스템 관점에서 이해하고 StoreOps Platform을 기획한 이유를 정리합니다.
🔗Link 문제 풀이1 풀이2 💡Idea 간단한 시뮬레이션 문제. 숫자 0~9외에 공백도 고려해야 함.
🔗Link 문제 풀이1 풀이2 💡Idea 패턴 매칭 문제이다. 바로 string에 find를 사용하는 풀이가 떠올랐다. 사용자가 누른 조작에서 비밀 메뉴 조작법이 들어있는지 매칭해보면 된다. 혹은 strstr를 사용할 수도 있겠다. g++환경에서 strstr함수가 KMP처럼 문자열...
🔗 Link 문제 풀이
🔗 Link 문제 풀이
블로그 시작 ㅁㄴㅇㄹ
요구 사항 집 PC에서 사무실 PC의 VM에 접속하고 싶음
서론 옵시디언의 calendar라는 캘린더를 표시해주고, 일일 노트들과 연결해주는 플러그인이 있다. 단축키로 이 calendar를 열고 싶은데, 단축키를 매핑할 수 있는 항목이 없다. 그래서 단축키를 설정할 수 있도록 설정을 해보겠다. 위 이미지의 빨간 박스 부분이 새로 추가한 ...
Docker 컨테이너 실행 및 상태 변경 명령어 정리