목록분류 전체보기 (591)
어흥
문제 링크: https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 node >> edge; for(int i=1;i s >> e >> val; arr[s][e] = val; } for (int k = 1; k
문제 링크: https://www.acmicpc.net/problem/3709 3709번: 레이저빔은 어디로 문제 레이저박스라는 게임은 정사각형 모양의 n x n 보드에서 진행한다. (체스판을 상상하면 된다) 레이저박스의 임의의 칸마다 우향우 거울이라는 장치가 설치되어 있고, 마지막으로 레이저 �� www.acmicpc.net 1. 주의할 점 - X,Y의 입력으로 받거나 Y,X 입력으로 받거나 둘중 하나로 통일해야 한다 2. 구현 - Num, Mirror의 수를 입력 받은 후, Arr[][]배열을 항상 0으로 초기화한다 - 우향우 거울인 경우, Arr[][] 배열값을 1로 설정한다 - 어떤 지점에서 레이저가 시작되는지에 따라 4가지의 초기값이 다른 DFS를 수행한다 - DFS()를 통해 범위 밖으로 나가..
문제 링크: https://www.acmicpc.net/problem/17835 17835번: 면접보는 승범이네 첫째 줄에 도시의 수 N(2 ≤ N ≤ 100,000), 도로의 수 M(1 ≤ M ≤ 500,000), 면접장의 수 K(1 ≤ K ≤ N)가 공백을 두고 주어진다. 도시는 1번부터 N번까지의 고유한 번호가 매겨진다. 다음 M개의 줄에 걸쳐 www.acmicpc.net 1. 주의할 점 - 모든 변수를 Long Long으로 받아들인다 2. 구현 - 면접장으로 가는것이 아닌 면접장에서 출발하도록 그래프의 방향을 바꿔서 넣는다 - 면접장을 우선순위큐에 넣고 다익스트라 알고리즘을 통해 각 도시까지의 거리를 구한다 - For문을 수행하며 1부터 Node 번호까지 비교하여 Maxi, Result을 갱신한다..
문제 링크: https://www.acmicpc.net/problem/2470 2470번: 두 용액 첫째 줄에는 전체 용액의 수 N이 입력된다. N은 2 이상 100,000 이하이다. 둘째 줄에는 용액의 특성값을 나타내는 N개의 정수가 빈칸을 사이에 두고 주어진다. 이 수들은 모두 -1,000,000,000 이상 1,000,00 www.acmicpc.net 1. 주의할 점 - 이분탐색으로 접근한다(양 끝에서 시작하는 투 포인터) - 정렬 이후, 이분탐색을 수행한다 2. 구현 - 모든 수를 입력받은 후, 오름차순으로 정렬한다 - Left 포인터를 0, Right 포인터를 Num-1로 설정하고 Al, Ar(출력시킬 정답), Result를 초기화하고 시작한다 - Left 포인터가 Right포인터를 넘지 않을때..
문제 링크: https://www.acmicpc.net/problem/1981 1981번: 배열에서 이동 문제 n×n짜리의 배열이 하나 있다. 이 배열의 (1, 1)에서 (n, n)까지 이동하려고 한다. 이동할 때는 상, 하, 좌, 우의 네 인접한 칸으로만 이동할 수 있다. 이와 같이 이동하다 보면, 배열에서 몇 개의 www.acmicpc.net 1. 주의할 점 - 두 포인터를 사용하여 풀어야 한다 - 검사를 할 때 마다 Check[][]배열을 False로 초기화 해야 한다 2. 구현 - 배열을 입력받고, 배열의 최소값과 최대값을 구한다 - L,R을 배열의 최소값으로 설정하고 While문을 시작한다(L~R 사이여야 이동 가능) - 만약 시작지점이 L보다 작거나 R보다 크다면 R++를 한다 - 시작지점 L..
문제 링크: https://www.acmicpc.net/problem/1967 1967번: 트리의 지름 파일의 첫 번째 줄은 노드의 개수 n(1 ≤ n ≤ 10,000)이다. 둘째 줄부터 n번째 줄까지 각 간선에 대한 정보가 들어온다. 간선에 대한 정보는 세 개의 정수로 이루어져 있다. 첫 번째 정수는 간선이 �� www.acmicpc.net 1. 주의할 점 - 간선에 대한 정보를 배열이 아닌 List 형태인 V[] 벡터에 저장한다 - 다익스트라를 2번 구현한다 2. 구현 - 모든 간선에 대한 정보를 V[] 벡터에 저장한다 - Dijsktra 알고리즘을 통해 Root Node에서 가장 길이가 먼 Node를 구한다 - 위에 구한 Node에서 시작하여 Dijsktra를 다시 수행하며 가장 긴 트리의 지름을 ..
문제 링크: https://swexpertacademy.com/main/code/problem/problemDetail.do?contestProbId=AWAe7XSKfUUDFAUw SW Expert Academy SW 프로그래밍 역량 강화에 도움이 되는 다양한 학습 컨텐츠를 확인하세요! swexpertacademy.com 1. 주의할 점 - 2가지의 조건을 통해 TLE를 예방한다 1) 저울에 올릴 때, 오른쪽의 총합 > 왼쪽의 총합이 된다면 무조건 왼쪽에만 추가한다 2) 남은 저울을 모두 오른쪽에 올려도 오른쪽의 총합
문제 링크: https://www.acmicpc.net/problem/17086 17086번: 아기 상어 2 첫째 줄에 공간의 크기 N과 M(2 ≤ N, M ≤ 50)이 주어진다. 둘째 줄부터 N개의 줄에 공간의 상태가 주어지며, 0은 빈 칸, 1은 아기 상어가 있는 칸이다. 빈 칸의 개수가 한 개 이상인 입력만 주어진다. www.acmicpc.net 1. 주의할 점 - BFS로 접근하되, 시작지점을 아기상어의 위치로 잡는다 2. 구현 - 모든 Check[][]값을 MAX로 초기화한다 - 아기상어가 위치한 곳을 큐에 넣고, Check[][]값을 0으로 설정한다 - 8방향 탐색을 통해 이동하려는 곳의 Check[][]값이 현재 이동한 거리(CV)+1보다 크다면 이동하고 Result를 CV+1와 비교하여 큰..