개발의 흔적

알고리즘 테스트# 2. 이상한 문자열 만들기 본문

카테고리 없음

알고리즘 테스트# 2. 이상한 문자열 만들기

남들에게 도움을 주는 백엔드 개발자가 되자 2020. 7. 15. 11:54

안녕하세요.

 

프로그래머스에 있는 "이상한 문자열 만들기" 알고리즘 문제를 풀어보겠습니다.

 

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

 

출력 결과 :

 

입력값 "try hello world"
기댓값 "TrY HeLlO WoRlD"

 

코드 :

 

* 문제 해설 *

 

문자열을 공백기준으로 잘라서 words 배열에 대입

바깥쪽 for문의 words를 반복

안쪽 for문의 바깥쪽 for문의 인덱스값을 대입 후 문자열값을 한글자씩 자른 후 배열에 대입

짝수인경우 대문자 대입 후 마지막 단어 전 까지 공백 대입

 

가장 중요한 split()함수를 사용하는방법

split(" , 0) 혹은 split( )의 경우abc 에서 값이 없는 c뒷부분을 제거하기때문에 [a],[b],[c]로 반환
*반면 0보다 작은 -1을 지정한 split( ",-1)은 구분자로 나눈 모든 결과값을 반환하기떄문에 [a],[b],[c],[ ]로 반환*

 

 

* 코드 해설 *

 

 문자열 : "try hello world" 

 

 문자열인 try hello world 값을 split(" ")으로 공백 제거 words 배열에 대입

 words 배열 결과값

 

 words[0] = try

 words[1] = hello

 words[2] = world

 

바깥쪽 for문의 words[0]를 한번 반복 후 

안쪽 for문의 words[i] == words[0]으로 만든후

words[0]의 값인 try 값을 split(" ")함수로 한글자씩 잘라서 String[] c에 대입 

 

c 배열 결과값

 

c[0] = t

c[1] = r

c[2] = y

 

그후 만약에 j의값이 0으로 떨어지면 짝수이므로 toUpperCase()함수를

이용하여 해당 c배열의 인덱스의 값을 대문자로 변환

 

그후 j의 배열이 종료가 된 후 한단어가 완성 

완성된 배열을 마지막 배열 전까지 (i < words.length - 1) 반복 후 

공백 대입 

 

 

 

더 좋은 코드가 있는경우 공유 바랍니다~ 

Comments