Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- Selenium
- pandas
- 오류
- label
- 채보
- Linux
- Visual Studio
- SSH
- JSON
- Docker
- 프로그래머스
- LIST
- C#
- ubuntu
- C++
- windows forms
- YOLO
- mysql
- 핑거스타일
- C
- Python
- OpenCV
- pytorch
- VS Code
- 명령어
- paramiko
- 기타 연주
- pip
- error
- Numpy
Archives
- Today
- Total
기계는 거짓말하지 않는다
[Programmers] 튜플 본문
프로그래머스 - 튜플 문제입니다.
양쪽의 중괄호를 먼저 제거하고, 다음 중괄호 안의 원소만 ,를 포함해서 string 벡터에 담아야겠다는 생각을 했습니다.
원소 수가 적은 집합을 오름차순으로 정렬 후 중복되지 않게 차례대로 정답 벡터에 추가합니다.
,를 기준으로 끊어 number를 확인 합니다. 중복 확인은 unordered_set 을 사용했습니다.
마지막에는 ,가 없으므로 배열 길이의 마지막에 도달하면 number를 한번 더 확인합니다.
#include <string>
#include <vector>
#include <algorithm>
#include <unordered_set>
using namespace std;
bool cmp(string a, string b) {
return a.length() < b.length();
}
vector<int> solution(string s) {
vector<int> answer;
vector<string> tuples;
unordered_set<int> set;
int i, j, num;
string temp = "";
s = s.substr(1, s.length() - 2); // 양쪽 중괄호 제거
for(i = 0; i < s.length(); i++) {
if(s[i] == '}') {
tuples.push_back(temp); // 중괄호 안의 원소 ,포함 저장
temp = "";
}
else if(s[i] != '{') {
if(temp == "" && s[i] == ',') continue; // 중괄호 사이의 ,는 무시
else temp += s[i];
}
}
sort(tuples.begin(), tuples.end(), cmp); // 길이 순 오름차순 정렬
temp = "";
for(i = 0; i < tuples.size(); i++) {
for(j = 0; j < tuples[i].length(); j++) {
if(tuples[i][j] != ',') temp += tuples[i][j]; // ,가 아닐경우 원소
if(tuples[i][j] == ',' || j == tuples[i].length() - 1) { // 현재 문자가 ,거나 마지막 원소일 때
num = stoi(temp);
if(set.find(num) == set.end()) { // 중복되지 않은 원소
set.insert(num); // set에 추가
answer.push_back(num); // 정답에 추가
}
temp = "";
}
}
}
return answer;
}
'Programming Test' 카테고리의 다른 글
[Programmers] 이진 변환 반복하기 (0) | 2021.04.30 |
---|---|
[Programmers] 캐시 (0) | 2021.04.30 |
[Programmers] 124 나라의 숫자 (0) | 2021.04.29 |
[Programmers] 야근 지수 (0) | 2021.04.26 |
[Programmers] 단어 변환 (0) | 2021.04.25 |
Comments