본문 바로가기

코딩 테스트60

[백준] 21939번 - 문제 추천 시스템 Version 1 (C++) 문제 및 풀이 문제) 백준 - 우선 수위 큐 - 문제 추천 시스템 Version 1 https://www.acmicpc.net/problem/21939 21939번: 문제 추천 시스템 Version 1 tony9402는 최근 깃헙에 코딩테스트 대비 문제를 직접 뽑아서 "문제 번호, 난이도"로 정리해놨다. 깃헙을 이용하여 공부하시는 분들을 위해 새로운 기능을 추가해보려고 한다. 만들려고 하는 명령 www.acmicpc.net 가장 어려운 문제와 쉬운 문제를 출력하기 위해 최대 힙과 최소 힙을 모두 이용했습니다. 하지만, 두 개의 힙으로는 solved(제거)를 못하므로 lev배열을 이용해 제거 여부를 판단합니다. 만약, lev이 -1일 경우 제거된 경우입니다. C++ 소스코드) 2022. 2. 14.
[백준] 1145번 - 적어도 대부분의 배수 (C++) 문제 및 풀이 문제) 백준 - 수학 - 적어도 대부분의 배수 https://www.acmicpc.net/problem/1145 1145번: 적어도 대부분의 배수 첫째 줄에 다섯 개의 자연수가 주어진다. 100보다 작거나 같은 자연수이고, 서로 다른 수이다. www.acmicpc.net 자연수가 5개만 주어지므로 삼중 반복문을 통해 최소 공배수를 구하며 가장 작은 것을 찾습니다. C++ 소스코드) 2022. 2. 14.
[백준] 1633번 - 최고의 팀 만들기 (C++) 문제 및 풀이 문제) 백준 - 동적 계획법 - 최고의 팀 만들기 https://www.acmicpc.net/problem/1633 1633번: 최고의 팀 만들기 꿍 협회는 매년 세계체스대회에 나갈 팀을 만들고 있다. 팀은 흑으로 플레이하는 15명과 백으로 플레이하는 15명, 총 30명으로 이루어진다. 꿍 협회는 가능한 최고의 팀을 만들려고 하는데 각 플 www.acmicpc.net 동적 계획법을 통해 해결했습니다. solve(int idx, int b_cnt, int w_cnt) 함수는 idx번째 사람까지 고른 흑(b_cnt)과 백(w_cnt)을 골랐을 때, 능력치의 최댓값입니다. solve 함수 내에서 idx번째 사람을 뛰어넘거나 흑 플레이어로 추가하거나 백 플렉이어로 추가합니다. C++ 소스코드) Full Code.. 2022. 2. 12.
[백준] 3184번 - 양 (C++) 문제 및 풀이 문제) 백준 - DFS - 양 https://www.acmicpc.net/problem/3184 3184번: 양 첫 줄에는 두 정수 R과 C가 주어지며(3 ≤ R, C ≤ 250), 각 수는 마당의 행과 열의 수를 의미한다. 다음 R개의 줄은 C개의 글자를 가진다. 이들은 마당의 구조(울타리, 양, 늑대의 위치)를 의미한다. www.acmicpc.net DFS를 통해 각 영역을 구분합니다. 영역을 구분하면서 영역에 존재하는 양과 늑대의 개수를 세어줍니다. 양이 많을 경우 양의 개수만 더하고, 늑대가 많을 경우 늑대의 개수만 더해주면 해결할 수 있습니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Solution/.. 2022. 2. 12.
[백준] 1032번 - 명령 프롬프트 (C++) 문제 및 풀이 문제) 백준 - 구현 - 명령 프롬프트 https://www.acmicpc.net/problem/1032 1032번: 명령 프롬프트 첫째 줄에 파일 이름의 개수 N이 주어진다. 둘째 줄부터 N개의 줄에는 파일 이름이 주어진다. N은 50보다 작거나 같은 자연수이고 파일 이름의 길이는 모두 같고 길이는 최대 50이다. 파일이름은 www.acmicpc.net 첫 번째 문자열과 두 번째 이후 문자열을 비교하여 만약 다를 경우 '?'를 저장합니다. C++ 소스코드) 2022. 2. 12.
[백준] 19238번 - 스타트 택시 (C++) 문제 및 풀이 문제) 백준 - BFS - 스타트 택시 https://www.acmicpc.net/problem/19238 19238번: 스타트 택시 첫 줄에 N, M, 그리고 초기 연료의 양이 주어진다. (2 ≤ N ≤ 20, 1 ≤ M ≤ N2, 1 ≤ 초기 연료 ≤ 500,000) 연료는 무한히 많이 담을 수 있기 때문에, 초기 연료의 양을 넘어서 충전될 수도 있다. 다 www.acmicpc.net BFS를 통해 택시에서 승객, 승객에서 목적지까지의 최단 거리를 연료를 고려하여 승객을 태웁니다. board: 택시가 활동할 영역의 지도이며 -1일 경우 벽, 0일 경우 빈칸, 1 이상일 경우 손님의 인덱스를 나타냅니다. tempBoard: BFS를 진행할때 거리와 방문 여부를 함께 저장합니다. coords: 승객의 좌.. 2022. 2. 10.
[백준] 18290번 - NM과 K (1) (C++) 문제 및 풀이 문제) 백준 - 백트래킹 - NM과 K (1) https://www.acmicpc.net/problem/18290 18290번: NM과 K (1) 크기가 N×M인 격자판의 각 칸에 정수가 하나씩 들어있다. 이 격자판에서 칸 K개를 선택할 것이고, 선택한 칸에 들어있는 수를 모두 더한 값의 최댓값을 구하려고 한다. 단, 선택한 두 칸이 인접 www.acmicpc.net 백트래킹으로 해결합니다. valid함수로 인접 여부를 판별하며, solve함수로 선택된 점과 더한 부분합을 계산하여 선택된 점이 K이면 최댓값을 갱신합니다. C++ 소스코드) Full Code) https://github.com/Chocochip101/BOJ_Solution/blob/main/Solution/18290_NM%EA%B3%BCK.. 2022. 2. 9.
[백준] 9421번 - 소수상근수 (C++) 문제 및 풀이 문제) 백준 - 에라토스테네스의 체 - 소수상근수 https://www.acmicpc.net/problem/9421 9421번: 소수상근수 양의 정수 n의 각 자리수의 제곱의 합을 계산한다. 그렇게 해서 나온 합도 각 자리수의 제곱의 합을 계산한다. 이렇게 반복해서 1이 나온다면, n을 상근수라고 한다. 700은 상근수이다. 72 + 02 + 02 = www.acmicpc.net 1부터 N까지 차례로 소수와 상근수 판별을 하여 둘 다 만족할 경우 출력합니다. 소수 판별은 에라토스테네스의 체를 활용하여 해결했습니다. 상근수는 판별은 상근수 변환을 이용하여 변환할 때마다 set에 insert 합니다. 만약, set에 변환된 숫자가 존재할 경우 cycle이 돌아 상근수가 아니므로 false를 return 합니.. 2022. 2. 9.
[백준] 14697번 - 방 배정하기 (C++) 문제 및 풀이 문제) 백준 - 구현 - 방 배정하기 https://www.acmicpc.net/problem/14697 14697번: 방 배정하기 정보 초등학교 6학년 여학생들은 단체로 2박 3일 수학여행을 가기로 했다. 학생들이 묵을 숙소에는 방의 정원(방 안에 있는 침대 수)을 기준으로 세 종류의 방이 있으며, 같은 종류의 방들이 여러 www.acmicpc.net N이 최대 300이므로 A, B, C를 0~300까지 탐색하면 N이 만들어지는지 확인하면 됩니다. C++ 소스코드) 2022. 2. 9.
반응형