안녕하세요~
오늘은 프로그래머스 "달리기 경주" 문제를 풀어볼게요!
https://school.programmers.co.kr/learn/courses/30/lessons/178871
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
LV.1 난이도라서 단순하답니다!!
호출되는 선수의 순서를 앞 순위 선수와 바꾸면 되는 문제인데요!
map에 선수 이름별 인덱스를 저장하고
선수 이름이 호출될때마다
players 벡터와 map의 value값을 갱신해줬어요!
전체코드는 아래 첨부합니다!
#include <string>
#include <vector>
#include <map>
using namespace std;
void Swap(vector<string>& strVec, int a, int b)
{
string temp = strVec[a];
strVec[a] = strVec[b];
strVec[b] = temp;
}
vector<string> solution(vector<string> players, vector<string> callings) {
vector<string>& answer = players;
map<string, int> playersMap;
for(int i = 0; i < players.size(); i++)
{
playersMap[players[i]] = i;
}
for(int i = 0; i < callings.size(); i++)
{
int curPlayer = playersMap[callings[i]];
int targetPlayer = curPlayer - 1;
Swap(answer, curPlayer, targetPlayer);
playersMap[players[curPlayer]] = curPlayer;
playersMap[players[targetPlayer]] = targetPlayer;
}
return answer;
}'코딩테스트 > 프로그래머스' 카테고리의 다른 글
| 프로그래머스 광물 캐기 (C++) (0) | 2024.10.21 |
|---|---|
| 프로그래머스 택배 배달과 수거하기 (C++) (0) | 2024.10.21 |
| 프로그래머스 두 원 사이의 정수 쌍 (C++) (0) | 2024.10.07 |
| 프로그래머스 [PCCE 기출문제] 10번 / 데이터 분석 (C++) (1) | 2024.10.03 |
| 프로그래머스 [PCCE 기출문제] 9번 / 이웃한 칸 (C++) (1) | 2024.10.03 |