백준 algorithm
-
백준 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..
-
백준 1302 베스트셀러 C++백준 algorithm 2022. 7. 18. 23:35
출력 첫째 줄에 가장 많이 팔린 책의 제목을 출력한다. 만약 가장 많이 팔린 책이 여러 개일 경우에는 사전 순으로 가장 앞서는 제목을 출력한다. 예제 입력 1 복사 5 top top top top kimtop 예제 출력 1 복사 top 예제 입력 2 복사 9 table chair table table lamp door lamp table chair 예제 출력 2 복사 table 예제 입력 3 복사 6 a a a b b b 예제 출력 3 복사 a => MAP 자료구조에 대해 아는지 묻는 문제였습니다. => MAP 자료구조를 통해 가장 많이 나온 단어의 횟수를 저장합니다. => 가장 많이 나온 단어의 횟수를 VALUE로 갖고 있는 영단어들을 VECTOR에 삽입합니다. => 해당 VECTOR를 알파벳순으로 정..
-
백준 11866 요세푸스 문제 0 C++백준 algorithm 2022. 7. 17. 23:43
예제 입력 1 복사 7 3 예제 출력 1 복사 => 자료구조 queue 를 안다면 구현할 수 있는 문제입니다. => 삭제하고픈 원소를 찾을때까지 이전에 있는 원소들을 큐의 뒤쪽에 삽입합니다. => 삭제하고픈 원소를 찾을 경우, 해당원소를 PRINT하고 POP을 해줍니다. => 요세푸스 QUEUE에 원소가 없을때까지 위의 작업을 반복합니다. => 프린트문 시작 '' 를 적절한 곳에 넣어줍니다. => 문제풀이는 아래의 그림과 같습니다. #include #include #include #include #include #include #include #include #include #include using namespace std; int main() { ios_base::sync_with_stdio(fals..
-
백준 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++백준 algorithm 2022. 4. 13. 23:12
입력 입력의 첫째 줄에는 테스트 케이스의 개수가 주어진다. 각 테스트 케이스는 세 줄로 이루어져 있다. 첫째 줄에는 체스판의 한 변의 길이 l(4 ≤ l ≤ 300)이 주어진다. 체스판의 크기는 l × l이다. 체스판의 각 칸은 두 수의 쌍 {0, ..., l-1} × {0, ..., l-1}로 나타낼 수 있다. 둘째 줄과 셋째 줄에는 나이트가 현재 있는 칸, 나이트가 이동하려고 하는 칸이 주어진다. 출력 각 테스트 케이스마다 나이트가 최소 몇 번만에 이동할 수 있는지 출력한다. 예제 입력 1 복사 3 8 0 0 7 0 100 0 0 30 50 10 1 1 1 1 => 간단한 BFS문제입니다. => BFS로 탐색을 하며 target 좌표를 찾았을 경우 해당 값까지 이동한 거리를 출력하면 됩니다. => B..
-
백준 2525 오븐시계 C++백준 algorithm 2022. 4. 12. 22:06
입력 첫째 줄에는 현재 시각이 나온다. 현재 시각은 시 A (0 ≤ A ≤ 23) 와 분 B (0 ≤ B ≤ 59)가 정수로 빈칸을 사이에 두고 순서대로 주어진다. 두 번째 줄에는 요리하는 데 필요한 시간 C (0 ≤ C ≤ 1,000)가 분 단위로 주어진다. 출력 첫째 줄에 종료되는 시각의 시와 분을 공백을 사이에 두고 출력한다. (단, 시는 0부터 23까지의 정수, 분은 0부터 59까지의 정수이다. 디지털 시계는 23시 59분에서 1분이 지나면 0시 0분이 된다.) 예제 입력 1 복사 14 30 20 예제 출력 1 복사 14 50 예제 입력 2 복사 17 40 80 예제 출력 2 복사 19 0 예제 입력 3 복사 23 48 25 예제 출력 3 복사 0 13 => 단순구현문제입니다. => 주어진 문제대..