Coding 썸네일형 리스트형 백준 온라인 저지(Baekjoon Online Judge) - 1292 : 쉽게 푸는 문제 https://www.acmicpc.net/problem/1292 1292번: 쉽게 푸는 문제 첫째 줄에 구간의 시작과 끝을 나타내는 정수 A, B(1 ≤ A ≤ B ≤ 1,000)가 주어진다. 즉, 수열에서 A번째 숫자부터 B번째 숫자까지 합을 구하면 된다. www.acmicpc.net #include using namespace std; int main() { int a, b; int arr[1000]; int index = 0; for (int i = 0; i > a >> b; for (int i .. 더보기 백준 온라인 저지(Baekjoon Online Judge) - 1920 : 수 찾기 https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 이진 탐색을 이용하여 풀이해보았다. #include #include using namespace std; int binarySearch(int data[], int size, int d) { int s = 0; // 시작 int e = size - 1; // 끝 int m; while (s d) e = m - 1; else s = m + 1; } r.. 더보기 백준 온라인 저지(Baekjoon Online Judge) - 1647 : 도시 분할 계획 https://www.acmicpc.net/problem/1647 1647번: 도시 분할 계획 첫째 줄에 집의 개수 N, 길의 개수 M이 주어진다. N은 2이상 100,000이하인 정수이고, M은 1이상 1,000,000이하인 정수이다. 그 다음 줄부터 M줄에 걸쳐 길의 정보가 A B C 세 개의 정수로 주어지는데 A번 www.acmicpc.net 크루스칼 알고리즘을 이용하여 풀이해보았다. #include #include #include using namespace std; class Edge { public: int node[2]; int distance; Edge(); Edge(int a, int b, int distance) { this->node[0] = a; this->node[1] = b; t.. 더보기 C++ ios_base::sync_with_stdio(false); cin.tie(NULL); 우리는 알고리즘 문제를 풀이할 때 시간 초과가 발생하는 경우 다음과 같은 코드를 작성하여 실행 속도를 줄이곤 한다. ios_base::sync_with_stdio(false); cin.tie(NULL); 왜 이 코드를 작성하게 되면 실행 속도를 줄일 수 있을지 알아보도록 하자. 이 두 줄의 코드는 사실 실행 속도와는 관련이 없는 코드라고 한다. 단순히 부수 작용으로 속도가 향상되는 것이지 항상 속도가 향상된다고 단정지을 수 없다. 따라서 우리는 이 두 줄의 코드가 실행 속도를 줄여준다고 생각하고 모든 코드에 추가하는 행동은 지양해야 한다. cin과 cout은 scanf와 printf에 비해 속도가 느리다. 입출력 속도의 차이는 버퍼 때문인데, cin과 cout이 느린 이유는 C 라이브러리의 stdio 버.. 더보기 백준 온라인 저지(Baekjoon Online Judge) - 1197 : 최소 스패닝 트리 https://www.acmicpc.net/problem/1197 1197번: 최소 스패닝 트리 첫째 줄에 정점의 개수 V(1 ≤ V ≤ 10,000)와 간선의 개수 E(1 ≤ E ≤ 100,000)가 주어진다. 다음 E개의 줄에는 각 간선에 대한 정보를 나타내는 세 정수 A, B, C가 주어진다. 이는 A번 정점과 B번 정점이 www.acmicpc.net 크루스칼 알고리즘을 이용하여 풀이해보았다. #include #include #include using namespace std; class Edge { public: int node[2]; int distance; Edge(); Edge(int a, int b, int distance) { this->node[0] = a; this->node[1] =.. 더보기 크루스칼 알고리즘 (Kruskal's Algorithm) Minimum Spanning Tree 문제를 해결하기 위해서 보통 두 가지 종류의 알고리즘 중 하나를 선택하여 사용한다. 1. 프림 알고리즘 (Prim's Algorithm) 2. 크루스칼 알고리즘 (Kruskal's Algorithm) 이 두 가지 알고리즘 모두 MST 문제에서 최적의 값을 도출할 수 있음이 이미 증명되어 있다. 이번에는 크루스칼 알고리즘에 대하여 알아보도록 하겠다. 크루스칼 알고리즘은 모든 Edge들에 대해 Weight가 작은 것부터 큰 순으로 Sorting 해놓고 Weight가 작은 Edge부터 MST에 포함시켜 나가는 방식을 사용하는데, 여기에서 핵심은 Edge를 추가했을 때 사이클 생성 여부를 체크하여 사이클이 생성되지 않는 경우 해당 Edge를 MST에 추가한다는 것이다. 모.. 더보기 프림 알고리즘 (Prim's Algorithm) Minimum Spanning Tree 문제를 해결하기 위해서 보통 두 가지 종류의 알고리즘 중 하나를 선택하여 사용한다. 1. 프림 알고리즘 (Prim's Algorithm) 2. 크루스칼 알고리즘 (Kruskal's Algorithm) 이 두 가지 알고리즘 모두 MST 문제에서 최적의 값을 도출할 수 있음이 이미 증명되어 있다. 이번에는 프림 알고리즘에 대하여 알아보도록 하겠다. 프림 알고리즘의 핵심은, 현재 우리가 가지고 있는 MST와 Edge 하나로 직접적으로 연결된 Vertex 가운데 Weight가 가장 작은 것을 추가한다는 것이다. 모든 Edge를 확인했는데 V-1개의 Edge가 선택되지 않은 경우가 있다면 그래프가 Disconnected 되어있다는 뜻이다. 이미 MST에 포함된 Vertex에.. 더보기 [멋쟁이사자처럼 X 넥슨] MapleStory Worlds X Supporters Hackathon : MSW 서포터즈 활동 후기 이번 여름방학에 멋쟁이사자처럼과 넥슨에서 함께 진행하는 서포터즈 해커톤에 참여하였다. 6월 29일 합격 메시지와 합격 메일을 받게 되었고, 이에 팀을 짜 활동하기 시작했다. 지원 당시에 같은 지역 사람들과 함께 했으면 좋겠다는 이야기를 작성하였는데, 그 덕분이었는지 전부 같은 학교 사람들과 함께 팀이 되었다. 7월 한 달 동안은 서포터즈 해커톤 노션에서 제공되는 기본 학습 교안을 학습하는 시간을 가졌다. 그에 대한 내용은 블로그에 기록해왔으며, 중간중간 미니 테스트 2번 또한 진행하였다. 8월 4일에는 멋쟁이사자처럼 매니저들 그리고 다른 서포터즈 분들과 함께 서포터즈 네트워킹 데이를 진행했다. 재미 없을 것만 같았는데, 의외로 꽤나 재밌었다. 각각 M팀, O팀, D팀을 나뉘어 게임을 플레이 했는데, 나는.. 더보기 이전 1 ··· 26 27 28 29 30 31 32 ··· 39 다음