728x90 프로그래머스 C++149 프로그래머스 배달 C++ N개의 마을로 이루어진 나라가 있다.이 나라의 각 마을에는 1 ~ N까지의 번호가 각각 하나씩 부여 되어 있으며,각 마을은 양방향으로 통행할 수 있는 도로로 연결되어 있는데도로 마다 거리가 부여 되어있다.현재 1번 마을에 있는 음식점에서 각 마을로 음식 배달을 한다각 마을로 부터 음식 주문을 받을 때 K 시간 이하로 걸리는 마을에서만 주문을 받으려고 한다.음식을 주문할 수 있는 마을은 몇개인지 확인하는 문제 도로마다 양의 가중치인 거리가 있는 문제이므로최단 경로 알고리즘중 우선순위큐를 이용한 다익스트라 기법을 사용하여 풀었다. 2025. 2. 11. 프로그래머스 미로 탈출 C++ 직사각형 격자 형태의 미로에서 탈출할려고 한다.각 칸은 통로 또는 벽으로 구성되어있으며, 통로 어딘가에는 탈출구의 문을 열 수 있는 레버가 있다.먼저 레버를 찾아 당겨 미로를 빠져나갈 수있는 문을 열고해당 문으로 이동하여 탈출하는 문제이다. 한칸 이동 시에는 1초가 걸린다고 할때, 최대한 빠르게 미로를 빠져나가는데 걸리는 시간을 구해라 미로는 S : 시작, E : 출구, L : 레버. O : 통로, X : 벽 으로 이루어진 문자로 구성되어있다. 최단 경로를 찾는 문제로L 레버 까지의 최단 거리를 찾고레버부터 E 출구 까지의 최단 거리를 찾아두값을 더하면 최대한 빠르게 나갈 수 있는 길이 나오게 된다. BFS를 이용 2025. 2. 10. 프로그래머스 숫자 카드 나누기 C++ 숫자가 하나씩 적힌 카드를 반으로 나눠 가진 후조건을 만족하는 가장 큰 양의 정수 a의 값을 구하려고 한다.A가 가진 카드들에 적힌 모든 숫자를 나눌 수 있고, B가 가진 카드들에 적힌 모든 숫자들 중 하나도나눌 수 없는 양의 정수a 또는 그 반대가 되는 정수 b를 두 값중 가장 큰 값을 구하는 문제이다. 예를 들어 주어진 카드가 10, 5, 20, 17 일 경우 A가 10, 20 B가 5, 17이라면 조건에 만족하는 가장 큰 수는 10이다. 받은 카드가 매개변수 A,B로 주어졌을 때, 조건을 만족하는 가장 큰 양의 정수 a를 return해라 max값 이용해서 최대값 갱신 필요각각 매개변수의 공약수를 구해서 조건에 맞도록 상대수와 비교한다.만약 조건에 성립한다면 max값에 넣어 갱신하도록하고틀렸다면 .. 2025. 2. 9. 프로그래머스 불량 사용자 C++ 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자를 발견하였습니다.이런 응시자들을 모아 "불량 사용자" 라는 이름으로 목록을 만들었고당첨 처리 시 제외가 되도록 담당자에게 전달할려고 한다.이 때 개인 정보 보호를 위해서 일부 문자를 * 로 가려서 전달하였고아이디당 최소 한개 이상의 * 문자를 사용했다.이를 제재 아이디라고 부르기로 정하고응모자 아이디와 제재자 아이디가 매개변수로 주어졌을때응모자 아이디에서 제외되어여 할 아이디 목록은 몇가지의 경우의 수가 가능한지 return 하는 문제이다. 우선 두개의 단어를 비교하여 별을 제외하고 단어가 같은지 확인을 진행하고확인된 단어들을 조합해 경우의 수를 구하고 unordered_set을 이용해 중복제거를 통해 저장하고return해주어 .. 2025. 2. 5. 이전 1 2 3 4 5 6 7 ··· 38 다음 728x90