240202-TIL

2024. 2. 2. 21:06내일배움캠프

오늘은 오랜만에 알고리즘 문제를 풀다 와 이거 재밌었다 싶은게 있어서 

 

풀었던 알고리즘 문제를 정리하면서 오늘 배웠던 String.Split 메서드와 

 

Char.ToUpper , Char ToLower 에 대해서 정리해보자

 

그렇다면 오늘 풀어본 알고리즘 문제는?

 

입출력 예는 다음과 같다.

 

일단 처음 해야할 일이 공백을 기준으로 글자를 나눠야 했다.

 

처음에는 for문을 돌려 입력받은 문자열 s의 문자를 하나씩 읽어들여서 공백이 나올때마다 글자를 분리시켜야 하나 했지만

 

 

해당 메서드를 이용하면 손쉽게 문제를 해결할 수 있다.

 

 

친절하게 설명도 되어 있고

 

 

해당 메서드를 사용하면 어떻게 되는건지 친절하게 예제 코드로도 보여준다.

 

그러면 문제의 입출력 예로 나와있는 "try hello world" 로 테스트를 해보자

 

 

오오 공백마다 잘라져서 단어가 잘 저장된다. 

 

단어를 분리시키는것에 성공했으니

 

 

짝수번째 알파벳을 대문자로 홀수번째 알파벳은 소문자로 만들어보자

 

이번에도 사용할 메서드가 있는데 바로

 

두가지 메서드 되시겠다

 

Char.ToUpper()은 문자의 값을 해당하는 대문자로 바꿔주는 메서드

 

Char.ToLower()은 반대로 소문자로 바꿔주는 메서드

 

해당 메서드를 활용하여 이제 대문자와 소문자로 만들어 줄껀데

 

일단 단어들을 나눠 놨으니 반복문을 돌면서 나눠놓은 단어의 글자 하나하나를 봐야한다

 

그리고 짝수번째 알파뱃은 대문자로 홀수번째 알파벳은 소문자로 바꿔야 한다. 

 

 

해당 부분은 이렇게 처리했다.

 

try , hello, world로 분리되어서 temps에 들어가있으니까 첫 반복문은 3번을 반복하게 된다

 

안쪽의 반복문은 temp[i] 의 길이만큼을 반복하게 되는데

 

처음엔 try 3번을 돌고 , hello 5번, world 5번을 돌게 된다.

 

이때 조건을 주어 해당 인덱스가 짝수번째라면 Char.ToUppr로 소문자를 대문자로

 

짝수번째가 아니라면? 소문자로 바꿔주었다.

 

여기서 분명 나는 temps를 1차원 배열로 선언했는데 Char.ToUpper() 메서드 안에 들어가있는

 

temps는 왜 2차원 배열로 작성이 되어있나 싶을꺼다.

 

String은 잊지말자 문자의 배열이란 것을

 

해당 temps[][]를 그림으로 그려서 보자면

 

휴 그림판으로 한땀한땀 그려보았다.

 

이런 느낌이라고 생각하면 된다. 확실히 사람이 백번 말로 하는것보다 한번 눈으로 보여주는게

 

훨신 이해하기 편한것 같다.

 

 

그래서 출력을 시켜보면?

 

 

오 짝수번째 알파벳은 대문자로 홀수번째는 소문자로 잘 나오는 모습을 확인할수가 있는데

 

단어가 끝날때마다 공백을 찍어주는걸 깜빡해버려서 모든 단어가 붙어서 나와버렸다...

 

 

공백까지 찍어주고 나면?

 

캬 완벽하다 이제 해당 코드를 알고리즘 문제에 맞춰서 조금 수정한 뒤에 제출해보자

 

 

도대체 뭐가 틀렸다는건지 한참을 뚫어지게 보다가

 

 

WoRlD 뒤에 공백이 하나가 찍혀있다는걸 알았다.

 

바로 수정해보자

 

 

마지막에는 공백을 못찍게 마지막이 아닐때만 공백을 찍게 해주고 제출을 해봤다.

 

 

성공!!

 

오늘은 재밌는 문제를 풀면서 Split() , ToUpper() , ToLower() 에 대해서 학습했다.

 

오랜만에 알고리즘 문제로 TIL을 작성했는데 사실 Unity에서 새롭게 배운것도 많지만

 

아직 내가 완벽하게 이해하지 못했기 때문에 좀더 학습해서 그간 배운 내용들을 또또 TIL에 적도록 하겠다.

 

2월 2일 TIL은 여기서 마치도록 하겠다.

'내일배움캠프' 카테고리의 다른 글

240206-TIL  (0) 2024.02.06
240205-TIL  (0) 2024.02.05
240201-TIL  (0) 2024.02.01
240131-TIL  (0) 2024.01.31
240130-TIL  (0) 2024.01.30