분류 전체보기373 [ 백준 1865 ] 웜홀 (C++) 1865번: 웜홀 첫 번째 줄에는 테스트케이스의 개수 TC(1 ≤ TC ≤ 5)가 주어진다. 그리고 두 번째 줄부터 TC개의 테스트케이스가 차례로 주어지는데 각 테스트케이스의 첫 번째 줄에는 지점의 수 N(1 ≤ N ≤ 500), www.acmicpc.net 문제! 때는 2020년, 백준이는 월드나라의 한 국민이다. 월드나라에는 N개의 지점이 있고 N개의 지점 사이에는 M개의 도로와 W개의 웜홀이 있다. (단 도로는 방향이 없으며 웜홀은 방향이 있다.) 웜홀은 시작 위치에서 도착 위치로 가는 하나의 경로인데, 특이하게도 도착을 하게 되면 시작을 하였을 때보다 시간이 뒤로 가게 된다. 웜홀 내에서는 시계가 거꾸로 간다고 생각하여도 좋다. 시간 여행을 매우 좋아하는 백준이는 한 가지 궁금증에 빠졌다. 한 지.. 2023. 6. 7. [ 백준 1504 ] 특정한 최단경로 (C++) 1504번: 특정한 최단 경로 첫째 줄에 정점의 개수 N과 간선의 개수 E가 주어진다. (2 ≤ N ≤ 800, 0 ≤ E ≤ 200,000) 둘째 줄부터 E개의 줄에 걸쳐서 세 개의 정수 a, b, c가 주어지는데, a번 정점에서 b번 정점까지 양방향 길이 존 www.acmicpc.net 문제! 방향성이 없는 그래프가 주어진다. 세준이는 1번 정점에서 N번 정점으로 최단 거리로 이동하려고 한다. 또한 세준이는 두 가지 조건을 만족하면서 이동하는 특정한 최단 경로를 구하고 싶은데, 그것은 바로 임의로 주어진 두 정점은 반드시 통과해야 한다는 것이다. 세준이는 한번 이동했던 정점은 물론, 한번 이동했던 간선도 다시 이동할 수 있다. 하지만 반드시 최단 경로로 이동해야 한다는 사실에 주의하라. 1번 정점에서.. 2023. 6. 6. [ 백준 1238 ] 파티 (C++) 1238번: 파티 첫째 줄에 N(1 ≤ N ≤ 1,000), M(1 ≤ M ≤ 10,000), X가 공백으로 구분되어 입력된다. 두 번째 줄부터 M+1번째 줄까지 i번째 도로의 시작점, 끝점, 그리고 이 도로를 지나는데 필요한 소요시간 Ti가 들어 www.acmicpc.net 문제! N개의 숫자로 구분된 각각의 마을에 한 명의 학생이 살고 있다. 어느 날 이 N명의 학생이 X (1 ≤ X ≤ N)번 마을에 모여서 파티를 벌이기로 했다. 이 마을 사이에는 총 M개의 단방향 도로들이 있고 i번째 길을 지나는데 Ti(1 ≤ Ti ≤ 100)의 시간을 소비한다. 각각의 학생들은 파티에 참석하기 위해 걸어가서 다시 그들의 마을로 돌아와야 한다. 하지만 이 학생들은 워낙 게을러서 최단 시간에 오고 가기를 원한다. .. 2023. 6. 5. [ 백준 1167 ] 트리의 지름 (C++) 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 문제! 트리의 지름이란, 트리에서 임의의 두 점 사이의 거리 중 가장 긴 것을 말한다. 트리의 지름을 구하는 프로그램을 작성하시오. 간단하네요... 입력은 차례대로 5 // 정점의 갯수 1 3 2 -1 // 정점의 번호 // 연결된 정점 // 그 정점과의 거리 2 4 4 -1 3 1 2 4 3 -1 4 2 4 3 3 5 6 -1 5 4 6 -1 // -1이면 끝! 순서대로 받아옵니다. 이제 정점간의 가장 긴 거리 = 트리의 지름 을 구해야합니다... 2023. 6. 4. 유니온 파인드 [Union Find] 알고리즘 유니온 파인드 알고리즘이란? 두 노드에 대해 같은 그래프에 속해 있는지를 파악하는 알고리즘! 만약 아래처럼 노드들이 2개의 그래프로 나누어져 있다면 A와 B의 관계에 대해서 어떻게 알아낼 것인가에 대한 알고리즘입니다. 이름은 생소하지만 어렵지 않은 알고리즘! 구현 방법은 다음과 같이 정리해볼 수 있습니다. 1. 현재 노드의 부모노드들을 설정 2. 관계에 대해 알고싶은 두 노드들의 최종 부모노드를 비교 /판별 이것에 맞게 코드를 구성해 보겠습니다. 코드! 코드는 다음과 같이 간단하게 구성됩니다. int parents[51]; ... int Find(int x) { // 최종 부모노드 찾기 if (parents[x] == x) { return x; } return x = Find(parents[x]); } .. 2023. 6. 3. 유니티(Unity) async await이란 & 동기식, 비동기식 작업 유니티에서 라이브러리를 사용하다 보면 가끔 async await >> 이런아이들을 볼 수 있습니다. 이번 글은 이것들이 어떤 역할을 하는지 알아보도록 하겠습니다! 둘을 알기 전에 먼저 알아둬야 할 것들이 있습니다. 바로 동기식과 비동기식 작업의 차이입니다. 동기식? 동기식 작업이란 순차적인 실행 방식을 설명합니다. 만약 2가지의 함수가 있다면 이것들은 차례에 따라 실행 된다는 것! 유니티는 일반적으로 동기식 작업 방식을 채택하여 프로젝트를 실행합니다. 동기식 작업방식은 코드를 구현하기가 쉽고 실행 순서를 빠르게 파악할 수있습니다. 하지만 하나의 함수에서 엄청난 자원과 시간을 소모한다면 프로그램에 치명적일 수 있습니다. 그렇기에 이러한 부분에서는 비동기식으로 코드를 구성하기도 합니다! 비동기식? 비동기식 .. 2023. 6. 1. 이전 1 ··· 15 16 17 18 19 20 21 ··· 63 다음