[Programmers Lv.3] 디스크 컨트롤러
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 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: 서버-클라이언트 소켓 예제
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
🔗 Link 문제 풀이
Spaceship에서 구매한 개인 도메인을 GitHub Pages 블로그에 연결하고 HTTPS까지 적용한 기록
Minimal Mistakes 테마에서 수식을 렌더링하려면 MathJax 또는 KaTeX를 사용할 수 있다. 이번 포스팅에서는 MathJax와 KaTeX의 설정 방법을 알아보고 두 방식의 차이점을 비교하고자 한다. 두 방법 모두 _includes 디렉토리에서 설정 파일을 생성하고,...
예상 읽기 시간이란? 아래와 같이 블로그 포스팅을 읽는 데 소요되는 시간을 표시하는 기능이다. (“⏱1분 소요”)
서론 글을 쓰는 도중, 글에 박스를 치고 싶어 {: .notice}를 사용해보았다. 이를 사용하니 박스 안의 글씨가 작아지고, 위 아래로 마진값이 있는 것이 맘에 들지 않았다. 그래서 맘에 드는 {: .my_notice}를 하나 새로 만들기로 했다. 기존에 minimal mista...
서론 blog를 쓰자고 다짐했지만, 여러 글들이 그저 메모 단계에서 그쳤다. 메모는 주로 Obsidian을 통해 하는데, blog 또한 obsidian을 통해 관리하면 조금이나마 손이 더 갈까해서, blog를 위한 obsidian vault를 하나 파고 설정을 하고자 한다.
Docker 컨테이너 실행 및 상태 변경 명령어 정리
Apache 웹 서버
iSCSI 블록 스토리지
7. NFS 스토리지
🔗Link 문제 풀이1 풀이2 💡Idea 간단한 시뮬레이션 문제. 숫자 0~9외에 공백도 고려해야 함.
🔗Link 문제 풀이1 풀이2 💡Idea 패턴 매칭 문제이다. 바로 string에 find를 사용하는 풀이가 떠올랐다. 사용자가 누른 조작에서 비밀 메뉴 조작법이 들어있는지 매칭해보면 된다. 혹은 strstr를 사용할 수도 있겠다. g++환경에서 strstr함수가 KMP처럼 문자열...
블로그 시작 ㅁㄴㅇㄹ
요구 사항 집 PC에서 사무실 PC의 VM에 접속하고 싶음
서론 옵시디언의 calendar라는 캘린더를 표시해주고, 일일 노트들과 연결해주는 플러그인이 있다. 단축키로 이 calendar를 열고 싶은데, 단축키를 매핑할 수 있는 항목이 없다. 그래서 단축키를 설정할 수 있도록 설정을 해보겠다. 위 이미지의 빨간 박스 부분이 새로 추가한 ...
Docker 컨테이너 실행 및 상태 변경 명령어 정리
Spaceship에서 .xyz 도메인을 구매하고, Kubernetes 프로젝트 배포를 위해 DNS 레코드를 설정한 기록