728x90
원래 파이썬 유저지만.. 코테 사용 가능 언어에 파이썬이 없어서.. 갑작스럽데 C++ 공부하는 중...
근데 문자열 다루는게 파이썬보다 어려워서 관련 문제를 모아보았습니당.
당장 내일이라 많이 모으진 못했지만.. 문제 풀때 도움될만한 것들 위주로...
(1) 문자열 다루기 기본
https://school.programmers.co.kr/learn/courses/30/lessons/12918?language=cpp
#include <string>
#include <vector>
#include <cctype>
using namespace std;
bool solution(string s) {
bool answer = true;
if(s.size() == 4 || s.size() == 6){
for(int i = 0; i<s.size(); i++){
if (isdigit(s[i]) == 0){
answer = false;
}
}
}
else answer = false;
return answer;
}
(2) 이상한 문자 만들기
https://school.programmers.co.kr/learn/courses/30/lessons/12930?language=cpp
#include <string>
#include <vector>
using namespace std;
string solution(string s) {
string answer = "";
int count = 0;
for(int i = 0; i<s.size(); i++){
if (s[i] == ' '){
count = 0;
answer += ' ';
continue;
}
if (count % 2 == 0){
answer += toupper(s[i]);
count++;
}
else{
answer += tolower(s[i]);
count++;
}
}
return answer;
}
(3) 문자열 압축
https://school.programmers.co.kr/learn/courses/30/lessons/60057
#include <string>
using namespace std;
int solution(string s) {
int answer = s.length();
for (int i = 1; i <= s.length() / 2; i++) {
int len = s.length();
for (int j = 0; j < s.length(); j++) {
for (int count = 0, z = i; j + z < s.length(); z += i){
if (s.substr(j, i) == s.substr(j + z, i)) count++;
else {
len -= i * count;
if (count) len += to_string(count + 1).length();
j += z - 1;
break;
}
if (j + z + i >= s.length()) {
len -= i * count;
len += to_string(count + 1).length();
j += z;
}
}
}
if (len < answer) answer = len;
}
return answer;
}
728x90
'Study > Coding Test' 카테고리의 다른 글
[프로그래머스] 가장 큰 수 Python (0) | 2023.08.09 |
---|---|
[프로그래머스] 등굣길 Python (0) | 2023.08.09 |
[프로그래머스] 배달 Python, C++ (0) | 2023.08.02 |
[프로그래머스] 입국심사 Python, C++ (0) | 2023.08.01 |
[프로그래머스] 베스트앨범 Python, C++ (0) | 2023.08.01 |