목록구현 (98)
어흥
문제 링크: www.acmicpc.net/problem/5213 5213번: 과외맨 첫째 줄에 N이 주어진다. (1 ≤ N ≤ 500) 다음 줄부터 N*N-N/2줄(/는 정수 나눗셈이다)에는 두 양의 Ai와 Bi가 주어진다. (1 ≤ Ai, Bi ≤ 6, 1 ≤ i ≤ N * N - N / 2) 타일 i의 왼쪽에 쓰여 있는 숫자는 Ai, 오른 www.acmicpc.net 1. 주의할 점 - 타일에 대한 정보를 어떻게 저장하고 불러올 것인가 - 주변 타일을 어떻게 구할 것인가 - 끝까지 도달 못할 경우, 가장 번호가 큰 타일을 목적지로 한다 - 경로를 어떻게 저장할 것인가 2. 구현 - Arr[][]배열을 통해 각 타일에 대한 정보를 저장한다 - y와 x 벡터를 통해 각 타일이 2줄을 간격으로 Arr[][..
문제 링크: www.acmicpc.net/problem/16940 16940번: BFS 스페셜 저지 올바른 순서는 1, 2, 3, 4와 1, 3, 2, 4가 있다. www.acmicpc.net 1. 주의할 점 - 입력의 시작으로 1이 들어오는지 확인한다 - 2-2번의 조건을 정확히 처리한다 2. 구현 - 모든 간선에 대한 정보를 V[] 벡터에 저장한다 - 입력 받는 경로를 Order 벡터에 저장한다 - Finish[] 배열을 통해 방문했는지 체크한다 - inQueue[] 배열을 통해 현재 Queue에 있는지 확인한다 - Cnt를 통해 현재 비교해야 하는 번호를 가라킨다(Order[cnt]) - 큐에 1을 넣고 BFS를 시작한다. While문의 종료 조건으론 Queue가 비었거나 불가능한 경우다 - 현재 ..
문제 링크: www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 1. 주의할 점 - 매 TC, While문마다 초기화를 잘 수행해준다 - 범위밖으로 벗어나는 경우에 대한 처리를 잘 수행한다 - 주어진 규칙대로 전부 정확히 구현한다 2. 구현 - 범위밖으로 벗어나는 경우, 반대 방향으로 삽입되도록 구현한다 - 모든 파이어볼에 대한 정보를 Fire 벡터에 담는다 - Arr[][] 벡터 배열을 통해 파이어볼의 이동이 끝난 후, ..
문제 링크: www.acmicpc.net/problem/19237 19237번: 어른 상어 첫 줄에는 N, M, k가 주어진다. (2 ≤ N ≤ 20, 2 ≤ M ≤ N2, 1 ≤ k ≤ 1,000) 그 다음 줄부터 N개의 줄에 걸쳐 격자의 모습이 주어진다. 0은 빈칸이고, 0이 아닌 수 x는 x번 상어가 들어있는 칸을 의미 www.acmicpc.net 1. 주의할 점 - 순서대로 구현을 정확히 한다 - While문을 돌때마다 초기화를 잘 수행한다 - While문의 종료조건을 명확히 설정한다 - 매 TC마다 전역변수를 초기화한다 → 실제 시험에선 초기화한다 - 최대한 1시간이내로 풀려고 한다 2. 구현 - Info 구조체를 통해 상어에 대한 정보를 Shark[]에 담는다 - Info2 구조체를 통해 향수..
문제 링크: www.acmicpc.net/problem/14867 14867번: 물통 표준 입력으로 물통 A의 용량을 나타내는 정수 a(1 ≤ a < 100,000), 물통 B의 용량을 나타내는 정수 b(a < b ≤ 100,000), 최종 상태에서 물통 A에 남겨야 하는 물의 용량을 나타내는 정수 c(0 ≤ c ≤ a), 최 www.acmicpc.net 1. 주의할 점 - A와 B의 범위가 10만개 + 짝을 이루기 때문에 Set혹은 Map을 사용한다 2. 구현 - sInfo 구조체를 통해 A와 B 물통에 남은 물의 짝을 저장한다 - Info 구조체를 통해 A, B, 수행한 명령 수를 저장하고 우선순위큐는 수행한 명령 수의 오름차순으로 정렬한다 - 현재 시점으로 3가지의 과정을 수행해보고 Set에 없다면..
문제 링크: programmers.co.kr/learn/courses/30/lessons/43164 코딩테스트 연습 - 여행경로 [["ICN", "SFO"], ["ICN", "ATL"], ["SFO", "ATL"], ["ATL", "ICN"], ["ATL","SFO"]] ["ICN", "ATL", "ICN", "SFO", "ATL", "SFO"] programmers.co.kr 1. 주의할 점 - 지문을 정확히 읽어야 한다 (만일 경로가 여러개일 경우, 알파벳 순서가 앞선것 출력) - 알파벳 순서에 대한 처리를 수행한다 2. 구현 - 티켓에 포함된 공항명을 Map에 담는다. 또한, 경로에 대한 정보를 V[출발공항 번호]에 '도착공항'을 담는다 - V[] 벡터에 대해 알파벳 숫자가 앞선 순서대로 정렬한다 ..
문제 링크: www.acmicpc.net/problem/2982 2982번: 국왕의 방문 지난주에 상그니 아라비아의 국왕 고둘라 창지즈 영사우드가 한국에 도착했다. 고둘라는 매우 중요한 사람이다. 따라서, 경찰은 그가 타고 있는 차량이 길에 진입했을 때, 그가 길에 있는 동안 www.acmicpc.net 1. 주의할 점 - 국왕의 현재 위치를 알고 있어야 한다 or 각 도로가 통제되는 시간을 알고 있어야 한다 - 조건에 맞게 구현을 정확히 해야한다 2. 구현 - 교차로의 수만큼 Dist[] 배열을 초기화한다 - 교황이 방문하는 교차로를 Loc 벡터에 담는다 - 모든 도로에 대한 정보를 V[] 벡터와 도로의 길이를 Road[][] 배열에 담는다 - rSum[] 배열에는 교황이 순서대로 방문하는 교차로까지 ..
문제 링크: programmers.co.kr/learn/courses/30/lessons/64061 코딩테스트 연습 - 크레인 인형뽑기 게임 [[0,0,0,0,0],[0,0,1,0,3],[0,2,5,0,1],[4,2,4,4,2],[3,5,1,3,1]] [1,5,3,5,1,2,1,4] 4 programmers.co.kr 1. 주의할 점 - 크레인으로 뽑는 경우, 뽑은 자리는 0으로 바꾼다 - 바구니의 가장 위에 위치한 인형과 뽑은 인형만 비교한다 2. 구현 - 뽑으려는 위치를 idx로 표시한다(기존의 원소 - 1) - 위에서부터 뽑으므로 0부터 Num-1까지 탐색하여 인형이 있다면 뽑은 후, 해당 위를 0으로 바꾼다 - 뽑은 인형의 숫자를 바구니의 가장 위와 비교한다. 이때, 바구니가 비어있다면 바로 뽑은..