분류 전체보기

    (C++) 백준 1021번 - 회전하는 큐

    문제 링크 : https://www.acmicpc.net/problem/1021 1021번: 회전하는 큐 첫째 줄에 큐의 크기 N과 뽑아내려고 하는 수의 개수 M이 주어진다. N은 50보다 작거나 같은 자연수이고, M은 N보다 작거나 같은 자연수이다. 둘째 줄에는 지민이가 뽑아내려고 하는 수의 위치가 www.acmicpc.net 풀이 덱의 push와 pop을 사용하여 회전하는 큐를 어렵지 않게 구현할 수 있다. 다만 왼쪽으로 가는 것과 오른쪽으로 가는 것을 선택하는 알고리즘을 짜는 것에 고민을 많이 했는데, 단순하게 순회하며 어디가 더 가까운지 세는 것으로도 해결이 된다. #include #include using namespace std; deque D; int main() { ios::sync_wit..

    (C++) 백준 4949번 - 균형잡힌 세상

    문제 링크 : https://www.acmicpc.net/problem/4949 4949번: 균형잡힌 세상 하나 또는 여러줄에 걸쳐서 문자열이 주어진다. 각 문자열은 영문 알파벳, 공백, 소괄호("( )") 대괄호("[ ]")등으로 이루어져 있으며, 길이는 100글자보다 작거나 같다. 각 줄은 마침표(".")로 끝난다 www.acmicpc.net 풀이 닫는 괄호들이 나왔을 때 짝이 맞는 괄호가 stack의 Top에 위치해 있다면 이는 균형 잡힌 문장이라고 볼 수 있다는 점이 이 문제 풀이의 핵심 요소이다. 처음에 제출했을 때 실패가 나와서 왜 그런지 생각해 봤더니 "( ) ( ) ["와 같이 열린 괄호가 더 많은 경우여서 애초에 균형이 맞지 않은 것들을 예외 처리하지 못한 것이 원인이었다. 따라서 마지막..

    (C++) 백준 10866번 - 덱

    문제 링크 : https://www.acmicpc.net/problem/10866 10866번: 덱 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 Deque의 다양한 메서드들을 사용하는 문제이다. 실버 4 문제치곤 전혀 어렵지 않은 문제이다. 하지만 예외 처리해줘야 할게 꽤 있고, 반복적인 코드들이 많아 실수하기는 쉬운 것 같다. #include #include using namespace std; deque D; int main() { ios::sync_with_stdio(0); cin.tie(0); i..

    (C++) 백준 10845번 - 큐

    문제 링크 : https://www.acmicpc.net/problem/10845 10845번: 큐 첫째 줄에 주어지는 명령의 수 N (1 ≤ N ≤ 10,000)이 주어진다. 둘째 줄부터 N개의 줄에는 명령이 하나씩 주어진다. 주어지는 정수는 1보다 크거나 같고, 100,000보다 작거나 같다. 문제에 나와있지 www.acmicpc.net 풀이 이전에 Python을 사용해서 풀어보았던 문제이기에 어려움 없이 풀 수 있었다. STL Queue를 사용하여 풀어서 실버 4문제치곤 정말 쉬운 문제라고 할 수 있다. #include #include using namespace std; queue Q; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >..

    (C++) 백준 2841번 - 외계인의 기타 연주

    문제 링크 : https://www.acmicpc.net/problem/2841 2841번: 외계인의 기타 연주 첫째 줄에 멜로디에 포함되어 있는 음의 수 N과 한 줄에 있는 프렛의 수 P가 주어진다. (N ≤ 500,000, 2 ≤ P ≤ 300,000) 다음 N개 줄에는 멜로디의 한 음을 나타내는 두 정수가 주어진다. 첫 번째 정수 www.acmicpc.net 풀이 이전의 스택 문제들과 비슷하게 접근하여 풀었다. 기타의 줄이 6줄이므로 6개의 stack을 가지는 배열을 선언하였다. 아무 프렛도 안 누른 상태를 가정하여 0을 스택에 넣고 시작했는데, 이 덕분에 스택이 비어 오류가 발생하는 것을 걱정하지 않아도 된다. #include #include using namespace std; stack A[6..

    (스프링 MVC 1편) 3. 서블릿, JSP, MVC 패턴

    이 글은 김영한 님의 스프링 MVC 1편 수강 후 정리한 글입니다. (https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-mvc-1/dashboard) 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 - 인프런 | 강의 웹 애플리케이션을 개발할 때 필요한 모든 웹 기술을 기초부터 이해하고, 완성할 수 있습니다. 스프링 MVC의 핵심 원리와 구조를 이해하고, 더 깊이있는 백엔드 개발자로 성장할 수 있습니다., - www.inflearn.com 회원 관리 웹 애플리케이션 요구사항 회원 정보는 다음과 같다. 이름: username 나이: age 기능 요구사항은 다음과 같다. 회원 저장 회원 목록 조회 1. 회원 도메인 모델 회원 도메인 모델을 생성한다...

    (C++) 백준 2493번 - 탑

    문제 링크 : https://www.acmicpc.net/problem/2493 2493번: 탑 첫째 줄에 탑의 수를 나타내는 정수 N이 주어진다. N은 1 이상 500,000 이하이다. 둘째 줄에는 N개의 탑들의 높이가 직선상에 놓인 순서대로 하나의 빈칸을 사이에 두고 주어진다. 탑들의 높이는 1 www.acmicpc.net 풀이 처음에 다음과 같이 풀어보았다. #include #include using namespace std; stack T, tmp, answer; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; while(n--){ int i; cin >> i; T.push(i); } while(1){ int num = T.s..

    (C++) 백준 1406번 - 에디터

    문제 링크 : https://www.acmicpc.net/problem/1406 1406번: 에디터 첫째 줄에는 초기에 편집기에 입력되어 있는 문자열이 주어진다. 이 문자열은 길이가 N이고, 영어 소문자로만 이루어져 있으며, 길이는 100,000을 넘지 않는다. 둘째 줄에는 입력할 명령어의 개수 www.acmicpc.net 풀이 C++의 STL List 라이브러리를 사용하여 풀이하였다. 연결 리스트로 풀면 실버2 문제치곤 어렵지 않게 해결할 수 있다. 백준 5397번 키로그와 거의 동일한 문제여서 동일하게 풀이를 하면 된다. #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); string s; ci..

    (C++) 백준 5397번 - 키로거

    문제 링크 : https://www.acmicpc.net/problem/5397 5397번: 키로거 첫째 줄에 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 한줄로 이루어져 있고, 강산이가 입력한 순서대로 길이가 L인 문자열이 주어진다. (1 ≤ L ≤ 1,000,000) 강산이가 백스페이스를 입 www.acmicpc.net 풀이 C++의 STL List 라이브러리를 사용하여 풀이하였다. 연결 리스트로 풀면 실버2 문제치곤 어렵지 않게 해결할 수 있다. #include #include using namespace std; int main() { ios::sync_with_stdio(0); cin.tie(0); int n; cin >> n; while(n--){ list L; auto cur = L..

    (CS) 프로세스, 스레드, 프로세스 동기화 기법

    프로세스 프로세스(Process)는 운영 체제에서 실행 중인 프로그램을 의미한다. 즉, 사용자가 작성한 프로그램이 운영체제에 의해 메모리를 할당받아 실행 중인 것을 의미한다. 프로세스는 프로그램이 실행될 때 메모리 상에 할당된 작업 공간과, 프로세스 실행에 필요한 자원들(레지스터, 파일, 네트워크 연결 등)을 포함한다. 프로세스는 프로그램 실행 과정에서 운영 체제로부터 할당받은 자원을 사용하여 작업을 수행하며, 프로세스는 하나 이상의 스레드(Thread)를 가지고 있을 수 있다. 각각의 프로세스는 독립적으로 실행되며, 다른 프로세스와는 메모리 공간을 공유하지 않는다. 1. 프로세스 메모리 구조 프로세스 메모리 구조는 운영 체제에서 프로세스를 실행하기 위해 메모리를 할당하는 방법을 의미한다. 대부분의 운영..