🖥️ CS/Baekjoon Algorithms 228

백준 24392번 영재의 징검다리 (C++)

24392번: 영재의 징검다리 첫 줄에 N과 M(1 ≤ N, M ≤ 1,000)이 공백으로 구분되어 주어지고, 그 뒤에는 N줄에 걸쳐 다리의 정보가 주어진다. 강화유리의 경우 1, 일반 유리의 경우 0으로 주어진다. www.acmicpc.net 문제 요약 1. 첫 줄에 N과 M, 영재가 건널 수 있는 다리 정보 N*M (1 h >> w; for(int i=0; i arr[i][j]; } } int main() { input(); for(int i=0; i=0; i--){ for(int j=0; j

백준 18430번 무기공학 (C++)

문제 링크 : https://www.acmicpc.net/problem/18430 18430번: 무기 공학 첫째 줄에는 길동이가 가지고 있는 나무 재료의 세로, 가로 크기를 의미하는 두 자연수 N, M이 주어진다. (1 ≤ N, M ≤ 5) 다음 N개의 줄에 걸쳐서, 매 줄마다 나무 재료의 각 위치의 강도를 나타내 www.acmicpc.net 문제 요약 핵심 포인트 백 트래킹을 활용해서 풀면 됩니다. 이때 부메랑을 만들 수 있는 4가지 모양을 판별하는 것이 중요합니다. 부메랑의 모양은 일반적인 회전 모형처럼 for문을 돌려서 판별할 경우 갔던 경로를 되돌리는 과정의 구현이 번거로울 수 있으므로, for문을 사용하지 않고 각각 별개로 구현하는 것을 권장합니다. 문제 풀이 전체 코드입니다. #include ..

백준 6987번 월드컵 (C++)

문제 링크 : https://www.acmicpc.net/problem/6987 6987번: 월드컵 월드컵 조별 최종 예선에서는 6개국으로 구성된 각 조별로 동일한 조에 소속된 국가들과 한 번씩, 각 국가별로 총 5번의 경기를 치른다. 조별리그가 끝난 후, 기자가 보내온 각 나라의 승, 무승부 www.acmicpc.net 문제 요약 1. 6개의 팀이 서로 한 번씩 경기를 진행합니다. 승부의 결과는 승리 / 무승부 / 패배 3가지 입니다. 2. 4개의 테스트 케이스가 주어졌을때, (테스트 케이스 1줄 당 18개의 숫자가 입력됨) 해당 테스트 케이스가 가능한 경우인지 확인하세요. 3. 주어진 4개의 테스트에 대하여 가능한 경우 1을, 불가능한 경우 0을 공백을 한칸씩 띄고 출력하세요. 핵심 포인트 불가능한 ..

백준 16508번 전공책 (C++)

문제 링크 : https://www.acmicpc.net/problem/16508 16508번: 전공책 곧 졸업을 앞둔 민호는 대학교 생활 동안 구매만 해놓고 한 번도 펴보지 않은 전공책에 먼지가 쌓여 있는 것을 보고는, 이 책들을 어떻게 처리해야 할지 고민 중이다. 열심히 고민한 끝에 민호는 www.acmicpc.net 문제 요약 1. 민호가 만들고자하는 단어인 문자열 T(1 ≤ |T| ≤ 10)가 주어진다. T는 항상 대문자이다. 2. 민호가 가진 전공책의 개수 N과, N개의 전공책 가격 Ci (10,000 ≤ Ci ≤ 100,000), 전공책 제목을 의미하는 문자열 Wi (1 ≤ |Wi| ≤ 50)가 주어진다. Wi는 항상 대문자이다. 3. 민호가 만들고자 하는 문자열을 만들기 위해 사용해야하는 전..

백준 19640번 화장실의 규칙 (C++)

문제 링크 : https://www.acmicpc.net/problem/19640 19640번: 화장실의 규칙 위와 같이 줄을 선 경우를 생각해보자. (x, y) 는 사원의 근무 일수가 x, 화장실이 급한 정도가 y임을 나타낸다. [x, y]는 해당 사원이 데카임을 의미한다. 즉, 위의 그림에서 데카는 3번 사원이다. www.acmicpc.net 문제 요약 1. n명의 사원들이 도착한 순서대로 m개의 줄로 나열된다. 이때 주인공인 데카의 앞에는 k명의 사람들이 있다. (ex : n=6, m=3, k=2일 경우, 데카는 3번째 줄의 첫 번째 순서로 서게된다.) 2. n명의 사원수 만큼 근속일수, 화장실의 급한 정도의 값을 입력 받는다. 3. 다음의 우선순위대로 화장실을 이용하게 된다. 4. 데카의 앞에는 ..

백준 9935번 문자열 폭발 (C++)

문제 링크 : https://www.acmicpc.net/problem/9935 9935번: 문자열 폭발 첫째 줄에 문자열이 주어진다. 문자열의 길이는 1보다 크거나 같고, 1,000,000보다 작거나 같다. 둘째 줄에 폭발 문자열이 주어진다. 길이는 1보다 크거나 같고, 36보다 작거나 같다. 두 문자열은 모 www.acmicpc.net 문제 요약 1. 첫 번째 문자열(길이 1이상, 1,000,000이하)과 폭발 문자열(1이상 36이하)이 주어진다. 2. 문자열에 폭발 문자열이 포함되어있을 경우, 해당 폭발 문자열은 폭파되어 사라진다. 3. 폭파 된 뒤 새로 생긴 문자열에서도 폭발 문자열이 생길 수 있다. 4. 폭발 문자열이 문자열에 없을때까지 계속 폭파된다. 핵심 포인트 이 문제는 스택의 개념으로 접..

백준 1719번 택배 (C++)

문제 링크 : https://www.acmicpc.net/problem/1719 1719번: 택배 명우기업은 2008년부터 택배 사업을 새로이 시작하기로 하였다. 우선 택배 화물을 모아서 처리하는 집하장을 몇 개 마련했지만, 택배 화물이 각 집하장들 사이를 오갈 때 어떤 경로를 거쳐야 하 www.acmicpc.net 문제 요약 1. 두 수 n과 m이 주어집니다. 2. n은 집하장의 개수 (200이하 자연수) 이며, m은 집하장간 경로의 개수 (1000이하 자연수) 입니다. 집하장간 경로의 소요 시간은 모두 1000이하의 자연수 입니다. 3. 1번부터 n번까지, 한 집하장에서 다른 집하장으로 최단 경로로 화물을 이동시키기 위해 가장 먼저 거쳐야 하는 집하장을 출력하세요. 핵심 포인트 우선 다익스트라의 개념..

백준 14938번 서강그라운드 (C++)

문제 링크 : https://www.acmicpc.net/problem/14938 14938번: 서강그라운드 예은이는 요즘 가장 인기가 있는 게임 서강그라운드를 즐기고 있다. 서강그라운드는 여러 지역중 하나의 지역에 낙하산을 타고 낙하하여, 그 지역에 떨어져 있는 아이템들을 이용해 서바이벌을 www.acmicpc.net 문제 요약 1. 첫째줄에 지역의 개수 n (1 c; map[a].push_back({b,c}); map[b].push_back({a,c}); } for(int i=1; i> m >> r; for(int i=1; i> items[i]; for(int i=0; i> a >> b >> c; map[a].push_back({b,c}); map[b].push_back({a,c}); } (2) 1번..

프로그래머스 직업군 추천하기 (C++)

문제 링크 : https://programmers.co.kr/learn/courses/30/lessons/84325# 코딩테스트 연습 - 4주차 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 문제 요약 (문제 링크에는 각 벡터의 도표와 함께 설명이 디테일하게 나와있으므로, 문제 링크를 통해 자세히 보는 것을 추천합니다.) 1. vector에는 직군별 선호 언어가 나열되어있다. 맨 첫번째 단어는 직군의 명칭이며, 공백을 기준으로 선호 언어가 나열된다. 선호 언어는 5점에서 1점순으로 나열된다. 2. vector languages와 ve..

백준 20056번 마법사 상어와 파이어볼 (C++)

문제 링크 : https://www.acmicpc.net/problem/20056 20056번: 마법사 상어와 파이어볼 첫째 줄에 N, M, K가 주어진다. 둘째 줄부터 M개의 줄에 파이어볼의 정보가 한 줄에 하나씩 주어진다. 파이어볼의 정보는 다섯 정수 ri, ci, mi, si, di로 이루어져 있다. 서로 다른 두 파이어볼의 위치 www.acmicpc.net 문제 요약 1. N,M,K가 입력된다. ( 4 K; for(int i=0; i> r >> c >> m >> s >> d; q.push({r,c,m,s,d}); } } 이동하기 전의 파이어볼은 q에 큐 형식으로 저장하며, 이동을 완료한 파이어볼은 vc벡터에 저장합니다. 2. 다음은 파이어볼의 이동 위치를 구하는 함수입니다. void move(){..