일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 싸이월드
- 스탠실 버퍼 시작
- 스탠실 버퍼 사용
- react native
- react-native
- unity stencil buffer
- javascript
- C++
- react native accessible
- react native ios 기기 연결
- node.js
- CSS
- c++ 정보은닉
- react native typescript navigate
- Expo
- react native mac
- 스탠실 버퍼 튜토리얼
- react
- 리액트 네이티브 설치 오류
- react native 타입스크립트
- html
- stencil buffer
- cyworld
- GitHub
- 리액트 네이티브 맥
- node
- react native typescript
- 벡터와 리스트의 차이
- react native typescript navigation
- c++ using
Archives
- Today
- Total
혀니의 이거저거 뿌시기
[C++]프로그래머스 튜플 본문
728x90
코딩테스트 연습 - 튜플 | 프로그래머스 스쿨 (programmers.co.kr)
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
#include <string>
#include <vector>
#include <iostream>
#include <map>
#include <algorithm>
using namespace std;
bool cmp(pair<int,int> &a, pair<int, int> &b)
{
if (a.second == b.second) return a.first > b.first;
return a.second > b.second;
}
vector<int> solution(string s) {
vector<int> answer;
map<int, int> mp;
int i = 0;
int now = 0;
while(s[i])
{
if('0' <= s[i] && s[i] <= '9')
{
now = i;
for(int j = i; j < s.size(); j++)
{
if(s[j] == ',' || s[j] == '}')
{
mp[stoi(s.substr(now, j))]++;
i = j;
break;
}
}
}
else i++;
}
vector<pair<int, int>>vec(mp.begin(), mp.end());
sort(vec.begin(), vec.end(), cmp);
for(auto num:vec)
answer.push_back(num.first);
return answer;
}
문풀 방식
우선 튜플이 정렬되는 방식이 가장 많이 등장하는 숫자부터 vector에 정렬되어야 했다.
그러려면 등장하는 횟수를 저장해야 했는데 그럴때는 역시 map이 좋다.
while문으로 문자열을 훑으면서 숫자가 나올 경우 인덱스를 증가시켜 }이나 ,이 나올 때까지 받고 난 후에
그 때까지의 문자열을 자르고 stoi로 int형 정수로 변환하여 map에서 해당 값을 증가시켰다.
이렇게 map이 다 생성되고 난 후에는
<int, int>라는 형태의 배열에 맵의 처음부터 끝까지 그대로 집어넣는다.
그리고 cmp라는 함수로 second기준으로 정렬하여 sort하고
그 이후에 마지막으로 만들어진 vec의 first값들을 차례대로 answer벡터에 넣어주었다.
728x90
'알고리즘 공부(C++)' 카테고리의 다른 글
[C++]프로그래머스 다리를 지나는 트럭 (0) | 2023.10.16 |
---|---|
[C++]프로그래머스 양궁대회 (0) | 2023.10.10 |
[C++] 프로그래머스 광물 캐기 (2) | 2023.10.09 |
[C++]프로그래머스 여행경로 (0) | 2023.09.24 |
[C++]프로그래머스 부대복귀 (0) | 2023.09.20 |