코딩하는 해달이

[level 1] 이상한 문자 만들기 본문

개인 공부/프로그래머스

[level 1] 이상한 문자 만들기

코딩하는 해달 2022. 7. 20. 02:12

문제 설명

문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.

제한 사항

  • 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
  • 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.

문제 이해 

입력받은 문자열을 "단어"(문자열 전체 X)기준 짝수번째는 대문자, 홀수번째는 소문자로 바꾼 문자열을 리턴해야한다.

문자열 전체를 순회하며 공백을 만날 때마다 초기화하는 인덱스를 만들면 되지 않을까?

 

알고리즘

1. 문자열 s를 입력받는다.
2. 정수형 변수 vcindex를 선언한다.
3. 만약 s[i]가 공백이면 vcindex를 0으로 초기화한다.
4. 만약 vcindex가 짝수면 s[i]를 대문자로 변환하고 vcindex에 1을 더한다.
5. 만약 vcindex가 홀수면 s[i]를 소문자로 변환하고 vcindex에 1을 더한다.

풀이 코드

#include <string>
#include <vector>
#include <iostream>

using namespace std;

string solution(string s) 
{
	string answer = "";
	int vcindex = 0;

	for (int i = 0; i < s.length(); i++)
	{
		if (s[i] == ' ')
		{
			answer += " ";
			vcindex = 0;
		}
		else
		{
			if (vcindex % 2 == 0)
				answer += toupper(s[i]);
			else
				answer += tolower(s[i]);
			vcindex++;
		}
	}
	return answer;
}

https://school.programmers.co.kr/learn/courses/30/lessons/12930

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형
Comments