C++
-
백준 1012 유기농 배추 C++ (BFS)백준 algorithm 2022. 7. 21. 23:31
입력 입력의 첫 줄에는 테스트 케이스의 개수 T가 주어진다. 그 다음 줄부터 각각의 테스트 케이스에 대해 첫째 줄에는 배추를 심은 배추밭의 가로길이 M(1 ≤ M ≤ 50)과 세로길이 N(1 ≤ N ≤ 50), 그리고 배추가 심어져 있는 위치의 개수 K(1 ≤ K ≤ 2500)이 주어진다. 그 다음 K줄에는 배추의 위치 X(0 ≤ X ≤ M-1), Y(0 ≤ Y ≤ N-1)가 주어진다. 두 배추의 위치가 같은 경우는 없다. 출력 각 테스트 케이스에 대해 필요한 최소의 배추흰지렁이 마리 수를 출력한다. 예제 입력 1 복사 2 10 8 17 0 0 1 0 1 1 4 2 4 3 4 5 2 4 3 4 7 4 8 4 9 4 7 5 8 5 9 5 7 6 8 6 9 6 10 10 1 5 5 예제 출력 1 복사 5 1..
-
백준 7785 회사에 있는 사람백준 algorithm 2022. 7. 19. 16:14
출력 현재 회사에 있는 사람의 이름을 사전 순의 역순으로 한 줄에 한 명씩 출력한다. 예제 입력 1 복사 4 Baha enter Askar enter Baha leave Artem enter 예제 출력 1 복사 Askar Artem => 자료구조 을 사용할 수 있는지 묻는 문제였습니다. (C++은 풀때마다 문법때문에 짜증이 나는 경우가 많습니다....물론 제 실력부족이지만.... ) => cin은 '\n'를 처리하지 않고 입력버퍼에 남겨두기 때문에 getline을 하기전에는 cin.ignore();을 꼭 해주어야합니다. #include #include #include #include #include #include #include #include #include #include #include using..
-
프로그래머스 배달 C++프로그래머스(Programmers) 2022. 7. 1. 14:17
제한사항 마을의 개수 N은 1 이상 50 이하의 자연수입니다. road의 길이(도로 정보의 개수)는 1 이상 2,000 이하입니다. road의 각 원소는 마을을 연결하고 있는 각 도로의 정보를 나타냅니다. road는 길이가 3인 배열이며, 순서대로 (a, b, c)를 나타냅니다. a, b(1 ≤ a, b ≤ N, a != b)는 도로가 연결하는 두 마을의 번호이며, c(1 ≤ c ≤ 10,000, c는 자연수)는 도로를 지나는데 걸리는 시간입니다. 두 마을 a, b를 연결하는 도로는 여러 개가 있을 수 있습니다. 한 도로의 정보가 여러 번 중복해서 주어지지 않습니다. K는 음식 배달이 가능한 시간을 나타내며, 1 이상 500,000 이하입니다. 임의의 두 마을간에 항상 이동 가능한 경로가 존재합니다. 1..
-
괄호 회전하기프로그래머스(Programmers) 2022. 5. 18. 23:50
제한사항 s의 길이는 1 이상 1,000 이하입니다. 입출력 예 sresult "[](){}" 3 "}]()[{" 2 "[)(]" 0 "}}}" 0 입출력 예 설명 입출력 예 #1 다음 표는 "[](){}" 를 회전시킨 모습을 나타낸 것입니다. xs를 왼쪽으로 x칸만큼 회전올바른 괄호 문자열? 0 "[](){}" O 1 "](){}[" X 2 "(){}[]" O 3 "){}[](" X 4 "{}[]()" O 5 "}[](){" X 올바른 괄호 문자열이 되는 x가 3개이므로, 3을 return 해야 합니다. 입출력 예 #2 다음 표는 "}]()[{" 를 회전시킨 모습을 나타낸 것입니다. xs를 왼쪽으로 x칸만큼 회전올바른 괄호 문자열? 0 "}]()[{" X 1 "]()[{}" X 2 "()[{}]" O ..
-
프로그래머스 가장 먼 노드 C++프로그래머스(Programmers) 2022. 5. 17. 22:42
=> BFS를 사용해 각 노드로 가는 거리들을 구합니다. => 내가 지금 갈 노드 = 이전 노드 + 1; => 가장 멀리 있는 노드값을 answer에 반환합니다. #include #include #include #include using namespace std; int solution(int n, vector edge) { int answer = 0; vector graph(n+1); for(auto ed : edge) { int from = ed[0]; int to = ed[1]; graph[from].push_back(to); graph[to].push_back(from); } vector dist(n+1, -1); queue q; dist[1] = 0; q.push(1); int max =0; w..
-
백준 2747 피보나치수 C++백준 algorithm 2022. 4. 26. 20:29
입력 첫째 줄에 n이 주어진다. n은 45보다 작거나 같은 자연수이다. 출력 첫째 줄에 n번째 피보나치 수를 출력한다. 예제 입력 1 복사 10 예제 출력 1 복사 55 => 단순구현문제입니다. => 피보나치수를 저장할 수 있는 배열을 만들고 FOR문을 통해 피보나치수를 구합니다. => n의 한계치가 45이므로, 배열의 크기는 46이상이어야 합니다. #include #include #include #include #include #include #include #include #include using namespace std; long fibo[50]; int N; int main() { ios_base::sync_with_stdio(false); cin.tie(0); cout.tie(0); cin >..
-
프로그래머스 게임 맵 최단거리 C++프로그래머스(Programmers) 2022. 4. 24. 23:47
제한사항 maps는 n x m 크기의 게임 맵의 상태가 들어있는 2차원 배열로, n과 m은 각각 1 이상 100 이하의 자연수입니다. n과 m은 서로 같을 수도, 다를 수도 있지만, n과 m이 모두 1인 경우는 입력으로 주어지지 않습니다. maps는 0과 1로만 이루어져 있으며, 0은 벽이 있는 자리, 1은 벽이 없는 자리를 나타냅니다. 처음에 캐릭터는 게임 맵의 좌측 상단인 (1, 1) 위치에 있으며, 상대방 진영은 게임 맵의 우측 하단인 (n, m) 위치에 있습니다. 입출력 예 mapsanswer [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,1],[0,0,0,0,1]] 11 [[1,0,1,1,1],[1,0,1,0,1],[1,0,1,1,1],[1,1,1,0,0],[..