목록1단계 (38)
N
이 문제 또한 문자열 다루는 기본 문제같다..! 초보자도 쉽게 풀 수 있는 문제..! 우선 answer에 "김서방은 "을 넣어준다. for문을 이용해 "Kim"을 찾고, 그 위치를 string 형태로 변환하여 answer에 넣어준다. 마지막으로 "에 있다"를 넣어주면 끄으으읏..! #include #include #include using namespace std; string solution(vector seoul) { string answer = "김서방은 "; for(int i = 0; i < seoul.size(); i++) { if(seoul[i] == "Kim") { answer += to_string(i); break; } } answer += "에 있다"; return answer; }
문자열 문제 중 가장 기본이라고 생각하는 문제..! 어렵지 않아서 쉽게 풀 수 있다고 생각한다. 문자열의 길이부터 검사하고, 길이가 4 또는 6이 아니면 바로 false를 리턴. 길이가 4 또는 6이면 숫자로만 이루어져 있는지 검사해준다. #include #include using namespace std; bool solution(string s) { if(s.size() == 4 || s.size() == 6) { for(int i = 0; i = '0' && s[i]
algorithm 헤더에 있는 sort 함수를 이용하는 문제..! 단, sort함수는 기본적으로 오름차순으로 정렬하는 함수이기 때문에 내림차순으로 정렬해야하는 함수를 따로 정의해줘야 한다. 그래서 desc 함수를 만들어주었다..! 내림차순으로 정렬해야하는 문제가 여러개 있으니 외워두면 많이 쓸 수 있다...! 이와 별개로 sort를 다른 방식으로 정렬해야하는 문제가 있을 수 있으니, 적절하게 변경해서 사용하면 많은 도움이 된다..! #include #include #include using namespace std; bool desc(char a, char b) { return a > b; } string solution(string s) { string answer = ""; sort(s.begin()..
문자열 비교를 하여 p와 y의 개수를 세는 문제..! for문을 이용하여 문자열을 비교한다. 단, 대소문자를 구별하지 않으니 if문에 대소문자를 모두 포함해야 한다..! #include #include using namespace std; bool solution(string s) { bool answer = true; int pCount = 0, yCount = 0; for(int i = 0; i < s.size(); i++) { if(s[i] == 'p' || s[i] == 'P') pCount++; else if(s[i] == 'y' || s[i] == 'Y') yCount++; } if(pCount == yCount) return true; else return false; }
인덱스 n번째 글자를 기준으로 문자열을 오름차순으로 정렬하는 문제..! for문을 이용하여 모든 글자를 비교해주도록 한다..! 다만 인덱스 n번째가 같은 글자이면 사전순으로 정렬해주도록 한다. #include #include using namespace std; vector solution(vector strings, int n) { for(int i = 0; i strings[j]) strings[i].swap(strings[j]); } } ret..
for문만 알면 풀 수 있는 쉬운 문제..! 다만 a와 b의 대소관계가 정해져 있지 않으므로 이 부분만 처리하면 쉽게 풀 수 있다..! #include #include using namespace std; long long solution(int a, int b) { long long answer = 0; if(a > b) { for(int i = b; i
sort와 나머지 연산만 할 수 있으면 간단하게 풀 수 있는 문제..! 나누어 떨어지는 숫자가 1도 없으면(=answer 벡터가 비어있으면) -1을 answer에 넣어주고, 그렇지 않으면 sort를 하여 오름차순으로 정렬해주면 끄으으읏..! #include #include #include using namespace std; vector solution(vector arr, int divisor) { vector answer; for(int i = 0; i < arr.size(); i++) { if(arr[i] % divisor == 0) answer.push_back(arr[i]); } if(answer.empty()) answer.push_back(-1); else sort(answer.begin()..
연속적으로 같은 숫자가 오는지 확인만 해주면 간단하게 풀 수 있는 문제..! 처음에는 pre변수를 arr[0]에 있는 숫자로 초기화 해준다. 이 후 for문에서 arr[1]부터 끝까지 pre 변수와 비교해가면서 확인. 연속적이지 않으면 pre변수를 바꿔주고 answer 벡터에 넣어주면 끄으으읕..! #include #include #include using namespace std; vector solution(vector arr) { vector answer; int pre = arr[0]; answer.push_back(pre); for(int i = 1; i < arr.size(); i++) { if(pre != arr[i]) { pre = arr[i]; answer.push_back(pre); }..