코딩테스트 연습 - 이상한 문자 만들기 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 이상한 문자 만들기
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을
programmers.co.kr
문제 설명
문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분되어 있습니다. 각 단어의 짝수번째 알파벳은 대문자로, 홀수번째 알파벳은 소문자로 바꾼 문자열을 리턴하는 함수, solution을 완성하세요.
제한 사항
- 문자열 전체의 짝/홀수 인덱스가 아니라, 단어(공백을 기준)별로 짝/홀수 인덱스를 판단해야합니다.
- 첫 번째 글자는 0번째 인덱스로 보아 짝수번째 알파벳으로 처리해야 합니다.
입출력 예
s | return |
"try hello world" | "TrY HeLlO WoRlD" |
입출력 예 설명
"try hello world"는 세 단어 "try", "hello", "world"로 구성되어 있습니다. 각 단어의 짝수번째 문자를 대문자로, 홀수번째 문자를 소문자로 바꾸면 "TrY", "HeLlO", "WoRlD"입니다. 따라서 "TrY HeLlO WoRlD" 를 리턴합니다.
- Split을 이용해서 공백마다 끊어주면 초기화할때 인덱스 걱정을 안해도 되는군
[프로그래머스] C# : 이상한 문자 만들기 (tistory.com)
[프로그래머스] C# : 이상한 문자 만들기
프로그래머스 코딩테스트 연습 Level 1 - 이상한 문자 만들기 코딩테스트 연습 - 이상한 문자 만들기 문자열 s는 한 개 이상의 단어로 구성되어 있습니다. 각 단어는 하나 이상의 공백문자로 구분
coding-of-today.tistory.com
풀이1
using System;
public class Solution
{
public string solution(string s)
{
string answer = "";
// 입력된 문자열을 공백을 기준으로 잘라서 저장
string[] temp = s.Split();
// for문을 돌려서 문자열을 하나씩 호출함.
for (int i = 0; i < temp.Length; i++)
{
// 호출된 문자열에서 차례로 문자 하나씩을 꺼냄
for (int j = 0; j < temp[i].Length; j++)
{
// 0번째는 짝수 취급이므로 대문자로함
if (j == 0)
{
answer += Char.ToUpper(temp[i][j]);
continue;
}
// 짝수는 대문자로, 홀수는 소문자로 바꿈
if (j % 2 == 0)
{
answer += Char.ToUpper(temp[i][j]);
}
else
{
answer += Char.ToLower(temp[i][j]);
}
}
// 띄어쓰기가 전부 생략되어있으므로 문자열이 하나 끝날때마다 띄어쓰기를 넣어줌.
// 단, 마지막에는 띄어쓰기를 추가하면 안되므로 temp.Leght-1로 설정해준다.
if (i != temp.Length-1)
{
answer += " ";
}
}
return answer;
}
}
풀이2
int idx = 0;
for(int i=0; i<s.size(); i++){
if(s[i] == ' '){
idx=0;
continue;
}
if(idx%2){
if(s[i] <= 'Z') s[i]+=32;
}
else{
if(s[i] >= 'a') s[i]-=32;
}
idx++;
}
return s;
'Algorithm > C++' 카테고리의 다른 글
[프로그래머스 C++] 문자열 내림차순으로 배치하기 (0) | 2021.08.30 |
---|---|
[프로그래머스 C++] 자연수 뒤집어 배열로 만들기/push_back, vector (0) | 2021.08.30 |
[프로그래머스 C++] 가운데 글자 가져오기 /substr() (0) | 2021.08.27 |
[프로그래머스 C++] 수박수박수박수박수박수? / string (0) | 2021.08.25 |
[프로그래머스 C] 문자열을 정수로 바꾸기 /atoi() (0) | 2021.08.25 |
댓글