본문 바로가기

C++

(113)
[백준 11404번] 플로이드 link : https://www.acmicpc.net/problem/11404플로이드 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초256 MB49051705140553.667%문제n(1≤n≤100)개의 도시가 있다. 그리고 한 도시에서 출발하여 다른 도시에 도착하는 m(1≤m≤100,000)개의 버스가 있다. 각 버스는 한 번 사용할 때 필요한 비용이 있다.모든 도시의 쌍 (A, B)에 대해서 도시 A에서 B로 가는데 필요한 비용의 최소값을 구하는 프로그램을 작성하시오.입력첫째 줄에 도시의 개수 n(1≤n≤100)이 주어지고 둘째 줄에는 버스의 개수 m(1≤m≤100,000)이 주어진다. 그리고 셋째 줄부터 m+2줄까지 다음과 같은 버스의 정보가 주어진다. 먼저 처음에는 그 버스의 출발 도시의..
[백준 13160번] 최대 클리크 구하기 link : https://www.acmicpc.net/problem/13160최대 클리크 구하기 성공 스페셜 저지시간 제한메모리 제한제출정답맞은 사람정답 비율1 초512 MB2841209842.609%문제그래프 이론에서 클리크란, 완전 그래프인 부분 그래프를 의미한다. 즉, 정점으로 이루어진 집합 중 모든 두 정점 사이에 간선이 있는 집합을 의미한다. 최대 클리크는 그러한 집합 중 크기가 가장 큰 집합을 말한다. 일반적인 그래프에서 최대 클리크를 구하는 문제는 NP-hard 이다.N개의 구간이 있다. i번 구간의 시작점은 Si, 끝점은 Ei이며, 어떤 두 구간이 한 점 이상을 공유하면 이 두 구간을 ‘겹친다’고 표현한다. 이때 우리는 구간 그래프를 정의할 수 있다. 구간 그래프란, N개의 정점이 있고,..
[백준 2346번] 풍선 터뜨리기 link : https://www.acmicpc.net/problem/2346풍선 터뜨리기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초4 MB191271658241.189%문제N개의 풍선이 있다. 각 풍선 안에는 -N부터 N까지의 수가 적혀있는 종이가 들어 있다. 이 풍선들을 다음과 같은 규칙으로 터뜨린다.우선, 제일 처음에는 1번 풍선을 터뜨린다. 다음에는 풍선 안에 있는 종이를 꺼내어 그 종이에 적혀있는 값만큼 이동하여 다음 풍선을 터뜨린다. 양수가 적혀 있을 경우에는 오른쪽으로, 음수가 적혀 있을 때는 왼쪽으로 이동한다. 풍선은 원형으로 놓여 있다고 생각한다. 즉, 1번 풍선의 왼쪽에 N번 풍선이 있고, N번 풍선의 오른쪽에 1번 풍선이 있는 것이다. 이동할 때에는 이미 터진 풍선은 빼고..
[백준 1158번] 조세퍼스 문제 link : https://www.acmicpc.net/problem/1158조세퍼스 문제 성공시간 제한메모리 제한제출정답맞은 사람정답 비율2 초128 MB105345209403651.763%문제조세퍼스 문제는 다음과 같다.1번부터 N번까지 N명의 사람이 원을 이루면서 앉아있고, 양의 정수 M(≤ N)이 주어진다. 이제 순서대로 M번째 사람을 제거한다. 한 사람이 제거되면 남은 사람들로 이루어진 원을 따라 이 과정을 계속해 나간다. 이 과정은 N명의 사람이 모두 제거될 때까지 계속된다. 원에서 사람들이 제거되는 순서를 (N, M)-조세퍼스 순열이라고 한다. 예를 들어 (7, 3)-조세퍼스 순열은 이다.N과 M이 주어지면 (N,M)-조세퍼스 순열을 구하는 프로그램을 작성하시오.입력첫째 줄에 N과 M이 빈 ..
Linked List(연결 리스트) 연결 리스트(Linked List) 연결 리스트는 각 노드가 데이터와 포인터를 가지고 한 줄로 연결되어 있는 방식으로 데이터를 저장하는 자료 구조이다. 이름에서 말하듯이 데이터를 담고 있는 노드들이 연결되어 있는데, 노드의 포인터가 다음이나 이전의 노드와의 연결을 담당한다. 종류에는 단일, 이중, 원형 등의 연결 리스트가 있다. 배열이나 트리 구조와는 달리 특정 위치의 데이터를 검색해 내는데에는 O(n)의 시간이 걸리는 단점도 있다. 보통 조회가 드물고 추가, 삽입, 삭제가 잦은곳에 사용한다. ::보통 삽입/삭제 시 시간복잡도가 O(1)이라고 하는데, 그 위치를 찾아가는데 O(n)만큼 걸리므로 실제로는 O(n):: *출저 : 위키백과 1) 선형 연결 리스트 12345678910111213141516171..
Visual C++ Windows forms [1] [1] 개발환경 설정[2] 기본 UI 세팅 + Mysql 연동[3] txt 파일 전송 [1] 개발환경 설정 개발환경 때문에 너무 화가 나고 답답했다. 인터넷에서 자료들을 찾으면 'C++ Windows Forms'라는 항목이 다들 보였는데 내 visual studio 2015에는 전혀 보이지 않았기 때문이다. 찾다찾다 못찾아서 삭제하고 최신 버전인 2017을 받았다. 하지만 결과는 마찬가지였다. 내가 찾는 항목은 전혀 보일 생각이 없었고, 구글링을 하면서 visual studio installer에서 많은 것들을 다운받았지만 결국 찾지 못하고 4번이나 삭제했다가 다시 깔았다. 마지막에 어떻게 찾았더라.. 그냥 막 뒤지다가 새 프로젝트->온라인->템플릿->Visual C++을 가보니 내가 찾던게 있었다. 좋..
OpenGL-Tutorial 19 : Particles / Instancing link : http://www.opengl-tutorial.org/kr/intermediate-tutorials/billboards-particles/particles-instancing/ Wow 마지막 튜토리얼이다. 꾸준히 달려온 나에게 칭찬을 보낸다. 하지만 튜토리얼을 진행해오면서 이해가 덜된 부분이 많기 때문에 복습을 다시 할 것이다. 복습 후에는 가볍게 게임을 하나 만들어봐야지! 화이팅! Particles / Instancing particle은 3D billboards와 매우 유사하다. 두 가지 차이점이 있다 : 1) 많은 것들이 합쳐져있고, 움직인다2) 나타나고 죽고, 그들은 반투명하다 이 두 가지 차이는 모두 문제가 있다. 이 튜토리얼에서는 문제를 해결할 수 있는 방법을 제시한다. Part..
[백준 13163번] 닉네임에 갓 붙이기 link : https://www.acmicpc.net/problem/13163닉네임에 갓 붙이기 성공시간 제한메모리 제한제출정답맞은 사람정답 비율1 초512 MB112957750454.135%문제방금 막 프로그래밍을 배우기 시작한 찬우는 acmicpc.net에 있는 회원들이 모두 신같이 보였다. 그래서 찬우는 모든 회원의 닉네임 앞에 ‘갓’을 붙이려고 한다.찬우가 ‘koosaga’라는 닉네임을 가진 회원을 갓으로 바꿔 부른다면 ‘godsaga’가 된다. 또, 찬우가 ‘acka’라는 닉네임을 가진 회원을 갓으로 바꿔 부른다면 ‘godka’가 될 것이다. 찬우는 닉네임을 갓으로 바꾸는 알고리즘을 생각하다가, 아래와 같이 2단계 방법을 사용하면 될 것으로 생각했다.닉네임을 음절 단위로 쪼갠다.가장 첫 음절을..