본문 바로가기

알고리즘204

[백준] 10798번 - 세로읽기 (C++) 문제 및 풀이 문제) 백준 - 구현 - 세로읽기 https://www.acmicpc.net/problem/10798 10798번: 세로읽기 총 다섯줄의 입력이 주어진다. 각 줄에는 최소 1개, 최대 15개의 글자들이 빈칸 없이 연속으로 주어진다. 주어지는 글자는 영어 대문자 ‘A’부터 ‘Z’, 영어 소문자 ‘a’부터 ‘z’, 숫자 ‘0’ www.acmicpc.net 아주 쉬운 구현 문제였습니다. 배열을 모두 -1 초기화 후, 배열에 숫자가 들어간 것만 세로 방향으로 출력합니다. C++ 소스코드) 2022. 1. 13.
[백준] 7662번 - 이중 우선순위 큐 (C++) 문제 및 풀이 문제) 백준 - 우선순위 큐 - 이중 우선순위 큐 https://www.acmicpc.net/problem/7662 7662번: 이중 우선순위 큐 입력 데이터는 표준입력을 사용한다. 입력은 T개의 테스트 데이터로 구성된다. 입력의 첫 번째 줄에는 입력 데이터의 수를 나타내는 정수 T가 주어진다. 각 테스트 데이터의 첫째 줄에는 Q에 적 www.acmicpc.net C++의 multiset을 활용해 해결했습니다. multiset은 중복을 허용한 set으로서 삽입과 삭제를 O(logN)에 처리할 수 있습니다. multiset의 iterator를 사용하여 최대와 최소를 삭제합니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/m.. 2022. 1. 12.
[백준] 20208번 - 진우의 민트초코우유 (C++) 문제 및 풀이 문제) 백준 - 백트래킹 - 진우의 민트초코우유 https://www.acmicpc.net/problem/20208 20208번: 진우의 민트초코우유 첫번째 줄에 민초마을의 크기인 N과 진우의 초기체력 M, 그리고 민트초코우유를 마실때 마다 증가하는 체력의 양 H가 공백을 두고 주어진다. N, M, H는 모두 10보다 작거나 같은 자연수이다. 두번째 www.acmicpc.net 민트초코우유의 개수가 10개 이하이며, 마을의 크기(N)이 10보다 작은 자연수이기에 백트래킹을 활용해 민트초코우유의 최대 개수를 구할 수 있습니다. 민트초코우유의 조표를 저장하는 mint 벡터와 visited를 통해 재귀적으로 백트래킹하며 해결할 수 있었습니다. C++ 소스코드) Full Code) https://github.c.. 2022. 1. 12.
[백준] 7569번 - 토마토 (C++) 문제 및 풀이 문제) 백준 - BFS - 토마토 https://www.acmicpc.net/problem/7569 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net BFS를 통해 해결했습니다. Queue에 익은 토마토를 넣어주고 dist배열을 통해 방문 여부와 시간을 memo 합니다. 배열에 토마토 익힘 여부를 표시하여 BFS 종료 후, 안 익은 토마토가 있다면 -1을 출력하고 다 익었다면 dist 배열에서 최댓값을 출력합니다. C++ 소스 코드) Full Code) https://github.com/.. 2022. 1. 8.
[백준] 6593번 - 상범 빌딩 (C++) 문제 및 풀이 문제) 백준 - BFS - 상범빌딩 https://www.acmicpc.net/problem/6593 6593번: 상범 빌딩 당신은 상범 빌딩에 갇히고 말았다. 여기서 탈출하는 가장 빠른 길은 무엇일까? 상범 빌딩은 각 변의 길이가 1인 정육면체(단위 정육면체)로 이루어져있다. 각 정육면체는 금으로 이루어져 있어 www.acmicpc.net 3차원 미로를 탈출할 수 있는 최단 시간을 찾는 문제였습니다. 그래프 탐색에서 최단 시간을 찾을 때, 간선의 비용이 같으면 BFS를 사용합니다. 기본적인 3차원 BFS를 연습하기에 좋은 문제였습니다. C++ 소스 코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Problem%205000~99.. 2022. 1. 6.
[백준] 13023번 - ABCDE (C++) 문제) 백준 - DFS - ABCDE https://www.acmicpc.net/problem/13023 13023번: ABCDE 문제의 조건에 맞는 A, B, C, D, E가 존재하면 1을 없으면 0을 출력한다. www.acmicpc.net C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Problem%2010000~14999/13023_ABCDE.cpp GitHub - Chocochip101/BOJ_Solution: BOJ Solutions BOJ Solutions. Contribute to Chocochip101/BOJ_Solution development by creating an account on GitHu.. 2022. 1. 5.
[백준] 1956번 - 운동 (C++) 문제 및 풀이 문제) 백준 - 플루이드 와샬 - 운동 https://www.acmicpc.net/problem/1956 1956번: 운동 첫째 줄에 V와 E가 빈칸을 사이에 두고 주어진다. (2 ≤ V ≤ 400, 0 ≤ E ≤ V(V-1)) 다음 E개의 줄에는 각각 세 개의 정수 a, b, c가 주어진다. a번 마을에서 b번 마을로 가는 거리가 c인 도로가 있다는 의 www.acmicpc.net 마을의 개수(V=400)가 충분히 작기 때문에 플루이드 와샬로 최단 거리를 구할 수 있었습니다. 사이클 여부는 최단거리를 구한 후 board [i][j]와 board [j][i]가 존재하면 사이클이 존재하는 것으로 판단하면 됩니다. C++ 소스 코드) Full Code) https://github.com/Chocochip10.. 2022. 1. 5.
[백준] 17471번 - 게리맨더링 (파이썬) 문제 및 풀이 문제) 백준 - BFS - 게리맨더링 https://www.acmicpc.net/problem/17471 17471번: 게리맨더링 선거구를 [1, 4], [2, 3, 5, 6]으로 나누면 각 선거구의 인구는 9, 8이 된다. 인구 차이는 1이고, 이 값보다 더 작은 값으로 선거구를 나눌 수는 없다. www.acmicpc.net 삼성 기출스러운 조합+그래프 탐색 문제였습니다. 조합을 사용할 때, 파이썬 itertools에 내장된 combinations만큼 편한 게 없기 때문에 파이썬의 해결했습니다. N개의 구역 중에 1부터 N//2 구역을 뽑은 후 BFS를 통해 인구 수와 방문한 구역 수를 반환합니다. 마찬가지로, 위에서 뽑은 구역을 제외한 나머지 구역에 대해 인구 수와 구역 수를 계산하여 이전에 계산한 .. 2022. 1. 4.
[백준] 1110번 - 더하기 사이클 (파이썬) 문제 및 풀이 문제) 백준 - 구현 - 더하기 사이클 https://www.acmicpc.net/problem/1110 1110번: 더하기 사이클 0보다 크거나 같고, 99보다 작거나 같은 정수가 주어질 때 다음과 같은 연산을 할 수 있다. 먼저 주어진 수가 10보다 작다면 앞에 0을 붙여 두 자리 수로 만들고, 각 자리의 숫자를 더한다. 그 다음, www.acmicpc.net C++ 소스 코드) 2022. 1. 1.
반응형