[프로그래머스 / C++] 배열에서 문자열 대소문자 변환하기

YH·2023년 9월 6일
0

문제

배열에서 문자열 대소문자 변환하기 : 문제 링크


문제 분석

  • 문자열 배열 strArr가 주어진다. 모든 원소가 알파벳으로만 이루어져 있을 때, 배열에서 홀수번째 인덱스의 문자열은 모든 문자를 대문자로, 짝수번째 인데스의 문자열은 모든 문자를 소문자로 바꿔서 return 하는 solution 함수를 완성
  • for loop에서 if ~ else 문을 통해 배열의 인덱스가 홀수인지 짝수 인지 구분. 대소문자 변환을 위해 transform() 함수를 사용하므로 algorithm 헤더를 include. transform() 함수를 통해 배열의 홀수번째 인덱스의 문자열은 ::toupper 옵션을 통해 모두 대문자로, 짝수번째 인덱스의 문자열은 ::tolower 옵션을 통해 모두 소문자로 바꾸고, 문자열을 answer에 저장. 최종적으로 저장된 answer 벡터를 return

algorithm 헤더의 transform() 함수 사용법
transform(first1, last1, d_first, unary_op);

  • first1 : 입력한 변수의 first 위치
  • last1 : 입력한 변수의 last 위치까지
  • d_first : 저장할 변수의 first 위치
  • unary_op : 변환할 방법이 있는 함수 (대문자로 : toupper, 소문자로 : tolower)

풀이

#include <string>
#include <vector>
#include <algorithm>

using namespace std;

vector<string> solution(vector<string> strArr) {
    vector<string> answer;
    
    for(int i = 0; i < strArr.size(); ++i) {
        if(i % 2 == 1) {
            transform(strArr[i].begin(), strArr[i].end(), strArr[i].begin(), ::toupper);
        }
        else {
            transform(strArr[i].begin(), strArr[i].end(), strArr[i].begin(), ::tolower);
        }
        answer.push_back(strArr[i]);
    }
    return answer;
}
profile
Keep Recycling Your Dreams

0개의 댓글