Algorithm/프로그래머스

[프로그래머스] Level1) 이상한 문자 만들기

햄습햄 2021. 10. 20. 18:00

문제 설명

 

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

 

 

제한 조건

 

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

 


풀이 과정 (자바)

 

입력받은 String형 s를 split하여 하나씩 arr 배열에 넣었다.

 

i를 index로 표시하고, 그 값이 짝수이면 upper 처리를, 홀수면 Lower 처리를 했다.

(단어별로 짝, 홀수 인덱스를 판단해야 하는데 그 값을 판단하도록 i를 추가했다.)

arr 배열에서 하나씩 꺼낸 값이 공백이라면 i를 다시 0으로 바꿔주고, answer에는 공백을 추가했다.

 

for문이 끝나면 answer을 반환했다.

 

 

결과

 

 


다른 사람의 풀이

 

입력받은 String형 s를 split하여 하나씩 array 배열에 넣었다.

 

array 배열에서 하나씩 꺼낸 값이 공백을 포함하고 있다면

cnt를 다시 0으로 바꿔주고, 그렇지 않다면 cnt + 1을 했다.

 

cnt를 인덱스로 표시하고, 그 값이 짝수이면 Lower 처리를, 홀수면 Upper 처리를 했다.

(이때, answer에 값을 넣기 전에 cnt + 1을 하므로 위와는 반대로 생각해야 한다.

 0번째 인덱스를 1번이라고 생각해서 처리했다.)

 

for문이 끝나면 answer을 반환했다.

 

 

기타

 

index 부분도 삼항 연산자를 이용해 처리하고, contains를 사용할 생각을 하지 못했다.

이전에 contains는 코딩할 때 도움이 많이 됐고, 그만큼 많이 사용했는데

코딩을 한동안 하지 않으면서 다 잊어버렸다.

다음에 활용할 수 있도록 기억해 둬야겠다.