목록분류 전체보기 (370)
GitHubSeob

문제 https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net 문제풀이 BFS로 풀었다. 집, 편의점, 락 페스티벌 좌표를 입력한다. 맥주 한 병에 50m, 최대 20병이기 때문에 집에서 출발하거나 편의점에서 출발했을 때 최대 1000m 범위 안에 있는 거리를 갈 수 있다. 집 좌표를 큐에 넣고 편의점 하나하나 비교해보면서 방문한 적이 없고, 거리가 1000m 이하인 편의점이 있으면 좌표를 큐에 집어넣는다. 좌표를 큐에 집어넣었으면 방문 표시를 한..

문제 https://programmers.co.kr/learn/courses/30/lessons/83201 코딩테스트 연습 - 2주차 [[100,90,98,88,65],[50,45,99,85,77],[47,88,95,80,67],[61,57,100,80,65],[24,90,94,75,65]] "FBABD" [[70,49,90],[68,50,38],[73,31,100]] "CFD" programmers.co.kr 문제풀이 자기 점수를 제외한 점수들만 sum에 점수를 누적한다. 자기 점수가 유일한 최고점 또는 최저점이면 sum에 있는 점수 / (학생수-1)를 하여 평균 벡터인 avg에 저장한다. 자기 점수가 유일한 최고점 또는 최저점이 아니면 sum에 자기 점수를 더하고 학생수만큼 나누어 avg에 저장한다...

문제 https://www.acmicpc.net/problem/2573 2573번: 빙산 첫 줄에는 이차원 배열의 행의 개수와 열의 개수를 나타내는 두 정수 N과 M이 한 개의 빈칸을 사이에 두고 주어진다. N과 M은 3 이상 300 이하이다. 그 다음 N개의 줄에는 각 줄마다 배열의 각 행을 www.acmicpc.net 문제풀이 빙산의 높이를 입력받고 0이 아닌 높이를 입력받을 때 queue에 push 한다. 큐가 빌 때까지(큐가 비면 빙산이 모두 녹은 상태를 의미한다) 돌면서 1년이 지나면 따로 저장한 벡터를 빼어 남은 빙산의 상태를 갱신한다, 그리고 빙산 덩어리가 몇 덩어린지 확인을 하고 빙산 덩어리가 2개 이상이면 종료한다. 2개 이상이 아니면 인접한 부분 중 빙산이 없는 곳이 몇 개인지 세어 따..

문제 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 문제풀이 DFS로 문제를 풀었다. 비 오면 잠기는 높이를 0부터 설정하여 최대 높이-1까지 반복한다. 벡터 범위 안을 돌면서 물에 잠기지 않은 지역을 발견하면 큐에 push를 하고 queue가 빌 때까지 상하좌우를 살핀다. 땅이 잠기지 않았고 방문을 한 적이 없으면 방문하고 큐에 push 한다. 큐가 비면 안전 영역의 개수를 하나 늘린다. 벡터 범위 안을 다 돌았으면 비 오면 잠기는 높이를 1 높이..

문제 https://www.acmicpc.net/problem/1167 1167번: 트리의 지름 트리가 입력으로 주어진다. 먼저 첫 번째 줄에서는 트리의 정점의 개수 V가 주어지고 (2 ≤ V ≤ 100,000)둘째 줄부터 V개의 줄에 걸쳐 간선의 정보가 다음과 같이 주어진다. 정점 번호는 1부터 V까지 www.acmicpc.net 문제풀이 https://www.acmicpc.net/problem/1967 1967번 문제도 트리와 지름을 구하는 문제이다. 정점의 최대 개수가 적기 때문에 안 풀었다면 먼저 푸는 것을 추천한다. https://githubseob.tistory.com/27 [C++] 백준 / 1967 / 트리의 지름 문제 https://www.acmicpc.net/problem/1967 19..

문제 https://www.acmicpc.net/problem/11725 11725번: 트리의 부모 찾기 루트 없는 트리가 주어진다. 이때, 트리의 루트를 1이라고 정했을 때, 각 노드의 부모를 구하는 프로그램을 작성하시오. www.acmicpc.net 문제풀이 BFS를 이용하여 풀었다. 1 2를 입력받으면 양방향 간선이므로 tree[1]에 2를 push, tree[2]에 1을 push 했다. 큐가 빌 때까지 반복하면서 해당 정점과 연결된 정점들을 방문한 적이 없으면 큐에 push 하고 방문한다. 현재 노드가 1이고 다음 노드가 2이면, 2의 부모 노드는 1이 된다. 큐가 비면 반복문을 종료하고 1을 제외한 2부터 N까지 부모 노드를 저장한 벡터의 값들을 출력한다. vectortree(N + 1, vec..

문제 https://www.acmicpc.net/problem/1991 1991번: 트리 순회 첫째 줄에는 이진 트리의 노드의 개수 N(1≤N≤26)이 주어진다. 둘째 줄부터 N개의 줄에 걸쳐 각 노드와 그의 왼쪽 자식 노드, 오른쪽 자식 노드가 주어진다. 노드의 이름은 A부터 차례대로 영문자 www.acmicpc.net 문제풀이 void Preorder(char node, const vector& tree) { cout left_child >> right_child; tree[parent - 'A'][0] = left_child; tree[parent - 'A'][1] = right_child; } Preorder('A', tree); cout

문제 https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n-1개의 줄에 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 연 www.acmicpc.net 문제풀이 트리의 지름을 쉽게 구하는 공식이 있다는 것을 모르는 상태로 단순하게 DFS를 하여 지름을 구하는 방법을 썼다. 노드의 개수가 더 많았으면 시간 초과로 틀릴 알고리즘이다. vectortree[10001]; vectorvisit; int max_dist; tree의 형태는 이런 식이다. for (y = 1; y > current_nod..

문제 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 문제풀이 토마토 문제를 아직 안 풀었다면 7576번 먼저 푸는 것을 추천함. 7576번은 2차원, 7569번은 3차원 문제 https://www.acmicpc.net/problem/7576 3차원 배열을 거의 안 쓰다 보니 그 부분에서 좀 헤맸다. 입력받을 때 토마토가 0or1이면 도달해야 되는 토마 토수 +1, 1이면 현재 익은 토마토 수 +1, 큐에 좌표값을 집어넣..