본문 바로가기
반응형

C++146

백준 13913] C++ 벽 부수고 이동하기 해당 문제는 백준 사이트에서 풀 수 있습니다. https://www.acmicpc.net/problem/13913 1. 문제N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는 벽이 있는 곳을 나타낸다. 당신은 (1, 1)에서 (N, M)의 위치까지 이동하려 하는데, 이때 최단 경로로 이동하려 한다. 최단경로는 맵에서 가장 적은 개수의 칸을 지나는 경로를 말하는데, 이때 시작하는 칸과 끝나는 칸도 포함해서 센다.만약에 이동하는 도중에 한 개의 벽을 부수고 이동하는 것이 좀 더 경로가 짧아진다면, 벽을 한 개 까지 부수고 이동하여도 된다. 맵이 주어졌을 때, 최단 경로를 구해 내는 프로그램을 작성하시오.입력첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 .. 2020. 11. 9.
백준 13913] C++ 숨바꼭질4 해당 문제는 백준 사이트에서 풀 수 있습니다. https://www.acmicpc.net/problem/13913 1. 문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가.. 2020. 11. 8.
C++] 스레드의 사용량을 알아보자!!(Concurrency Visualizer) 1. 소개프로그래밍을 하면서 스레드가 과연 잘 사용되고 있는지? 혹시 어딘가 block되어서 제대로 일을 못하고 있는지? mutex구간이 많아서 컨텐션이 많이 발생되는지?? 이럴때 프로그램(프로세스)을 돌리면서 실시간 데이터 정보를 받아 각 스레드의 사용량을 보여주는 프로그램이 있습니다. Visual studio의 확장 프로그램인 Concurrency Visualizer for Visual studio 프로그램 입니다. 저는 Visual studio 2019 버전을 사용했습니다. 2. 설치 방법1. 2. 3.설치가 완료되면 visual studio를 껏다 켜주세요. 그럼 마저 설치가 된 후 프로그램을 실행할 수 있습니다. 3. 사용 방법#include #include #include #include #i.. 2020. 11. 8.
백준 13549] C++ 숨바꼭질3 해당 문제는 백준 사이트에서 풀 수 있습니다. https://www.acmicpc.net/problem/13549 1. 문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 0초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다.출력수빈이가.. 2020. 11. 7.
백준 12851] C++ 숨바꼭질2 해당 문제는 백준 사이트에서 풀 수 있습니다. https://www.acmicpc.net/problem/1697 1. 문제수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 그리고, 가장 빠른 시간으로 찾는 방법이 몇 가지 인지 구하는 프로그램을 작성하시오.입력첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는.. 2020. 11. 6.
C++] visual studio 에서 deadlock 상태 확인하기(CRITICAL_SECTION) 1. CRITICAL_SECTIONCRITICAL_SECTION 클래스는 에서 제공하는 MFC 라이브러리 기능입니다. CRITICAL_SECTION 은 데드락이 발생했을시 디버깅을 통해서 쉽게 원인파악이 가능합니다. 2. 예제 코드#include #include #include using namespace std; class CriticalSection{ CRITICAL_SECTION m_critSec;public: CriticalSection() { InitializeCriticalSectionEx(&m_critSec, 0, 0); } ~CriticalSection() { DeleteCriticalSection(&m_critSec); } void Lock() { EnterCriticalSection(&.. 2020. 11. 5.
C++] cpprestful-server 완성본(CpprestSDK) 1. 소개마이크로 소프트에서 진행하고 있는 오픈소스 프로젝트 CpprestSDK를 활용해 만든 restful server입니다. 설치방법 및 간단한 셈플 코드는 제 블로그에 있으니 참고해주시기 바랍니다. openSSL을 통해 https가 가능하도록 구현했는데, 사용하시려면 코드내에 http부분을 https로 변경해주시기 바랍니다. 자세한 코드와 사용 방법은 git URL을 참고해주세요. git URL : https://github.com/dnfwlq8054/Cpprestful_Server 2. 매커니즘해당 restful 서버는 Json 통신만 지원합니다. 또한 Get, Put, Post, Delete 요청 시 핸들러가 이를 감지 -> 각 요청에 맞는 함수 객체를 콜백 형식으로 반환해 줍니다. 반환받은 함.. 2020. 11. 5.
백준 1697] C++ 숨바꼭질 해당 문제는 백준 사이트에서 풀 수 있습니다. https://www.acmicpc.net/problem/1697 1. 문제 수빈이는 동생과 숨바꼭질을 하고 있다. 수빈이는 현재 점 N(0 ≤ N ≤ 100,000)에 있고, 동생은 점 K(0 ≤ K ≤ 100,000)에 있다. 수빈이는 걷거나 순간이동을 할 수 있다. 만약, 수빈이의 위치가 X일 때 걷는다면 1초 후에 X-1 또는 X+1로 이동하게 된다. 순간이동을 하는 경우에는 1초 후에 2*X의 위치로 이동하게 된다. 수빈이와 동생의 위치가 주어졌을 때, 수빈이가 동생을 찾을 수 있는 가장 빠른 시간이 몇 초 후인지 구하는 프로그램을 작성하시오. 입력 첫 번째 줄에 수빈이가 있는 위치 N과 동생이 있는 위치 K가 주어진다. N과 K는 정수이다. 출력 .. 2020. 11. 5.
Go 언어의 goroutine에 대해서... 기본적으로 C++은 Thread or task or async를 이용해 쓰레드를 만듭니다. JAVA는 extands Thread을 이용한 run overriding or implements Runnable 을 이용한 run overriding 또는 future클래스를 이용한 Thread 할당 등.... 여러가지 방식으로 Thread를 만들 수 있습니다. 반면 Go언어에서 쓰레드를 사용하려면 go 키워드를 이용한 goroutine을 사용해야 합니다. 1. goroutine vs Thread??Thread의 경우 기본적으로 stack을 할당받으며, heap, data 영역은 공유를 하게 됩니다.때문에 프로세스보다 가볍다는 장점과 context 발생시 프로세스보다 빠르다는 점이 있습니다. Thread는 기본(.. 2020. 11. 4.
프로그래머스] C++ 2020 KAKAO BLIND RECRUITMENT - 외벽 점검(Level 3) 해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다. 아래 링크를 통해 풀 수 있습니다. https://programmers.co.kr/learn/courses/30/lessons/60062 1. 문제레스토랑을 운영하고 있는 스카피는 레스토랑 내부가 너무 낡아 친구들과 함께 직접 리모델링 하기로 했습니다. 레스토랑이 있는 곳은 스노우타운으로 매우 추운 지역이어서 내부 공사를 하는 도중에 주기적으로 외벽의 상태를 점검해야 할 필요가 있습니다. 레스토랑의 구조는 완전히 동그란 모양이고 외벽의 총 둘레는 n미터이며, 외벽의 몇몇 지점은 추위가 심할 경우 손상될 수도 있는 취약한 지점들이 있습니다. 따라서 내부 공사 도중에도 외벽의 취약 지점들이 손상되지 않았는 지, 주기적으로 친구들을 보내서 점검을 하.. 2020. 11. 1.
백준 19236] C++ 청소년 상어 해당 문제는 백준 사이트에서 풀 수 있습니다. https://www.acmicpc.net/problem/19236 1. 문제아기 상어가 성장해 청소년 상어가 되었다.4×4크기의 공간이 있고, 크기가 1×1인 정사각형 칸으로 나누어져 있다. 공간의 각 칸은 (x, y)와 같이 표현하며, x는 행의 번호, y는 열의 번호이다. 한 칸에는 물고기가 한 마리 존재한다. 각 물고기는 번호와 방향을 가지고 있다. 번호는 1보다 크거나 같고, 16보다 작거나 같은 자연수이며, 두 물고기가 같은 번호를 갖는 경우는 없다. 방향은 8가지 방향(상하좌우, 대각선) 중 하나이다.오늘은 청소년 상어가 이 공간에 들어가 물고기를 먹으려고 한다. 청소년 상어는 (0, 0)에 있는 물고기를 먹고, (0, 0)에 들어가게 된다. 상.. 2020. 10. 16.
프로그래머스] C++ 연습문제 - 스티커 모으기(2) (level 4) 해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다. 아래 링크를 통해 풀 수 있습니다. https://programmers.co.kr/learn/courses/30/lessons/12971 1. 문제N개의 스티커가 원형으로 연결되어 있습니다. 다음 그림은 N = 8인 경우의 예시입니다. 원형으로 연결된 스티커에서 몇 장의 스티커를 뜯어내어 뜯어낸 스티커에 적힌 숫자의 합이 최대가 되도록 하고 싶습니다. 단 스티커 한 장을 뜯어내면 양쪽으로 인접해있는 스티커는 찢어져서 사용할 수 없게 됩니다. 예를 들어 위 그림에서 14가 적힌 스티커를 뜯으면 인접해있는 10, 6이 적힌 스티커는 사용할 수 없습니다. 스티커에 적힌 숫자가 배열 형태로 주어질 때, 스티커를 뜯어내어 얻을 수 있는 숫자의 합의 최댓.. 2020. 10. 15.
프로그래머스] C++ 2020 카카오 인턴십 - 보석 쇼핑(Level 3) 해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다. 아래 링크를 통해 풀 수 있습니다. https://programmers.co.kr/learn/courses/30/lessons/67258 1. 문제[본 문제는 정확성과 효율성 테스트 각각 점수가 있는 문제입니다.] 개발자 출신으로 세계 최고의 갑부가 된 어피치는 스트레스를 받을 때면 이를 풀기 위해 오프라인 매장에 쇼핑을 하러 가곤 합니다. 어피치는 쇼핑을 할 때면 매장 진열대의 특정 범위의 물건들을 모두 싹쓸이 구매하는 습관이 있습니다. 어느 날 스트레스를 풀기 위해 보석 매장에 쇼핑을 하러 간 어피치는 이전처럼 진열대의 특정 범위의 보석을 모두 구매하되 특별히 아래 목적을 달성하고 싶었습니다. 진열된 모든 종류의 보석을 적어도 1개 이상 포.. 2020. 10. 13.
간단한 이진-tree 만들기(들어온 순서대로 만들기) 1. 목표 C++ 사용해 간단한 tree구조를 만들어보겠습니다. 입력한 순서대로 만들어지는 2진-tree를 만들것입니다. 예를들어 1, 2, 3, 4, 5, 6, 7, 8 이 들어온다면 다음과 같이 만드는 것이 목적입니다. queue를 이용한 bfs 방법으로 만들었습니다. 2. 만들기1) 우선 간단한 Tree와 요소를 담을 vector, 자료를 처리할 queue를 선언합니다.#include #include #include using namespace std; class tree {private: int num; tree* right; tree* left;public: tree() { right = NULL; left = NULL; num = 0; } ~tree() { delete(right); delet.. 2020. 9. 28.
프로그래머스] C++ 깊이/너비 우선 탐색(DFS/BFS) - 가장 먼 노드(level 3) 해당 문제는 프로그래머스 코딩테스트 연습에 있는 문제입니다. 아래 링크를 통해 풀 수 있습니다. https://programmers.co.kr/learn/courses/30/lessons/49189 1. 문제 n개의 노드가 있는 그래프가 있습니다. 각 노드는 1부터 n까지 번호가 적혀있습니다. 1번 노드에서 가장 멀리 떨어진 노드의 갯수를 구하려고 합니다. 가장 멀리 떨어진 노드란 최단경로로 이동했을 때 간선의 개수가 가장 많은 노드들을 의미합니다. 노드의 개수 n, 간선에 대한 정보가 담긴 2차원 배열 vertex가 매개변수로 주어질 때, 1번 노드로부터 가장 멀리 떨어진 노드가 몇 개인지를 return 하도록 solution 함수를 작성해주세요.제한사항노드의 개수 n은 2 이상 20,000 이하입니다.. 2020. 9. 11.
반응형

스킨편집 -> html 편집에서