반응형
프로그래머스 코딩테스트 연습 Level 1 - 이상한 문자 만들기
문제의 핵심
1. 문제를 이해해서 구현할 수 있는가?
2. 문자열과 배열의 능숙한 사용
문제가 조금 모호하게 쓰여있어서 한번 틀렸었는데
문제를 제대로 이해하는 것이 중요하다.
문자열을 공백기준으로 잘라서 각각 배열에 원소로 저장해놓고
각 원소의 문자열마다 0부터 새롭게 계산하면서
짝수면 대문자, 홀수면 소문자로 표현하면 된다.
근데 예제에서는 공백을 포함해서 계산해도 정답이 나오고,
공백을 잘라내서 계산해도 정답이 나와서 당황하긴 했는데
아무튼 잘라진 문자열마다 계산해서 풀어주면 된다.
풀이법.
문자열을 Split() 메소드를 사용해서 공백기준으로 나눠서 배열에 저장한다.
배열의 각 원소마다 잘려진 문자열들이 담겨 있으므로,
for문을 돌려서 원소를 하나씩 호출하고
이중 for문을 만들어서 호출된 문자열의 문자를 하나씩 꺼낸다.
그 후에 짝수인지 홀수인지 검사해서 대소문자로 변경해주면 된다.
한글자이므로 Char형태라서
Char.ToUpper / Char.ToLower
메소드를 사용해주면 된다.
정답 코드
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;
}
}
반응형
'C# > 프로그래머스' 카테고리의 다른 글
[프로그래머스] C# : 하샤드 수 (0) | 2021.07.30 |
---|---|
[프로그래머스] C# : 행렬의 덧셈 (0) | 2021.07.30 |
[프로그래머스] C# : 문자열을 정수로 만들기 (0) | 2021.07.30 |
[프로그래머스] C# : 수박수박수박수박수박수? (0) | 2021.07.29 |
[프로그래머스] C# : 평균 구하기 (0) | 2021.07.29 |
댓글