본문 바로가기
728x90

프로그래머스 C++149

프로그래머스 여행경로 C++ 주어진 항공권을 모두 이용하여 여행경로를 짜려고 한다.항상 ICN공항에서 출발한다. 항공권 정보가 담긴 2차원 배열 tickets가 매개변수로 주어질 때, 방문하는 공항 경로를 배열에 담아 return 하도록 solution함수를 작성해라 맵을 이용해 출발 공항과 도착 공항을 key, value로 관리해준다.도착 공항을 기준으로 정렬하여 알파벳순으로 오도록 해준다.그다음 dfs 함수를 만들어 시작 공항 ICN으로 시작하여 가장 앞에 있는 도착 공항을 선택해 방문하며백트래킹을 이용해 재귀로 돌려 계속해서 탐색을 해주며 answer에 추가해준다.추가한 다음  answer를 reverse하여 올바른 순서로 만들어 return 해준다. 2025. 4. 1.
프로그래머스 리코쳇 로봇 리코챗 로봇이라는 보드게임이 있다.보드게임은 격자모양 게임판 위에서 말을 움직이는 게임으로시작 위치에서 출발한 뒤 목표 위치에 정확하게 멈추기 위해 최소 몇 번의 이동이 필요한지 말하는 게임이다.이 게임에서 말의 이동은 현재 위치에서 상,하,좌,우 한 방향으로장애물이나 게임판 가장자리에 도착할 때까지 한 방향으로 직진한다.. 은 빈공간을, R은 로봇의 처음 위치를, D는 장애물의 위치, G는 목표지점을 나타낸다. 우선 맵을 전체 탐색하며 시작지점을 찾아주는 코드로 시작하고방향을 담은 배열을 미리 선언해준다.BFS를 이용한 최적의 경로를 찾는 문제로방향을 정하고 장애물이나 가장자리가 나올때까지 쭉 직진을 하며, 이동해주며 목표지점을 찾아준다. 2025. 3. 18.
프로그래머스 괄호 변환 C++ 문제 해석다른 개발자가 작성한 소스 코드를 분석해 문제점을 찾고, 수정하는 업무를 진행중이다.소스 코드 내 작성된 괄호가 개수는 맞지만 짝이 맞지 않은 형태로 되어 있어 오류가 생긴다는 것을 알게 되었고모든 괄호를 뽑아 올바른 순서대로 배치된 괄호 문자열을 알려주는 프로그램을 개발 할려고 한다. () 로 이루어진 문자열은 균형잡힌 괄호 문자열() 짝이 맞는 경우는 올바른 괄호 문자열이라고 한다. 예시1. ((()))( = 균형잡힌 괄호2. (())() = 균형잡힌 괄호 & 올바른 문자열 해당 프로그램을 작성하는 방법이 주어진다. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환해준다.2. w를 균형잡힌 문자열이라고 한다면, u, v로 분리해 준다.3. u는 더 이상 분리할 수 없어야 하며, v는 빈문자열.. 2025. 3. 1.
프로그래머스 가장 먼 노드 C++ 문제 설명n개의 노드가 있는 그래프가 있다.각 노드는 1부터 n까지 번호가 적혀있는데 1번 노드에서 가장 멀리 떨어진 노드의 개수를 구하려고 한다.가장 멀리 떨어진 노드란 최단 경로로 이동할 때 간선의 개수가 가장 많은 노드이다. 노드의 개수 n, 간선의 정보가 담긴 2차원 배열  정점(vertex)가 매개변수로 주어질 때,1번 노드로부터 가장 멀리 떻어진 노드가 몇 개 인지 return 하는 문제 간선은 양방향이며 뱌열의 a,b는 a번과 b번 노드 사이에 간선이 있다는 의미가중치는 1 문제 풀이다익스라를 이용해 1번에서 연결된 각 노드까지의 거리 벡터를 만들어 준다.각 노드까지의 거리 벡터에서 가장 큰 값을 구하여해당 값과 같은 값을 가진 노드를 발견할 때마다 answer에 ++ 해준다 2025. 2. 27.
728x90