티스토리 뷰

권오흠 교수님의 알고리즘 강좌를 보던 중에 

문자열을 받아서 그것을 한 글자씩 Recursion 을 이용해 출력해내는 부분이 있었다. (아래처럼)

 

 

아 일단 프로그래밍을 Swift 로 시작했기 때문에 Java 를 전혀 모른다.

그래서 코드를 볼 때마다 새로운 것이 나오면 그것을 다시 구글링해서 어떤 내용인지 찾아보고

다시 Swift 엔 이와 비슷한 것이 무엇인지 찾아봐야하기 때문에 상당한 시간이 걸린다.

아니 그래서 이 하소연을 하는 이유는 이제 나와 같은 문제를 겪지 말았으면 하는 마음에 쓰는 포스팅이라는 것이다.

...

 

 

아무튼, 이 코드를 똑같이 구현해보기 위해서 일단 어차피 한 글자씩만 나오면 되는 거니까

다음과 같이 구현하였다.

 

 

문자열을 뭐로 넣어줄까 싶다가 갑자기 프렌치 감성으로 Bonjour 를 넣어봤다.

음 원하는 대로 글자가 출력이 잘 되었군. 재귀함수도 활용했고...

하지만 여기서 뭔가 잘못되었음을 느낀다. 

 

일단 원래 수업에서는 charAt() 함수를 이용해 '문자열 중에 해당되는 위치' 중 0번째, 그러니까 첫 글자를 가져왔고,

subString() 을 이용해 '원하는 범위만큼 문자열 잘라내기' 를 하였다.

subString(1) 이니까, 1번째 인덱스, 0부터 시작하니까 곧 2번째 글자부터 끝까지 잘라내겠다는 것.

 

일단, 이를 swift 에서 구현해보고자 문서를 찾아보았다.

OM... substring(to:) 메서드는 Swift 4 로 넘어오면서 deprecated 되었다. 그러면 어떻게 해야할까?

 

단순히 string 을 [ ] 를 이용해 character 타입으로 뽑아내는 것으로는 해결이 어렵다.

왜냐하면 String.Index 타입을 이용해서 따로 구해줘야 하기 때문...

그래서 다음과 같이 String.Index 타입의 인덱스를 따로 구해줘서 해결하였다.

 

 

휴우.. 복잡했다.

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함