240229-TIL
2월 29일
오늘은 오랜만에 알고리즘 문제에 대해 정리해보자
오늘 풀어보았던 문제는 바로바로바로
하나씩 알아보도록 하자
숫자 문자열과 영단어
문제에 대한 내용은 이렇다


문제를 풀기위해 Replace 메서드를 이용했다.

문제에 나와있는 영단어표다
Replace 메서드를 이용하면

인스턴스에서 지정된 문자 혹은 문자열이 모두 다른 지정된 문자열로 바뀌는 새 문자열을 반환한다.
어떤 느낌인지 Visual Studio에서 확인해보자
노가다를 좀 해주자

테스트용으로 문제와 비슷한 느낌의 s를 만들어주고

s를 한땀한땀 바꿔주면

이렇게 문자열이 바뀐다. 어떤 느낌으로 사용하는지 알았으니 문제에 적용시켜보자

한땀한땀 바꿀 문자열들을 다 입력해줬으니 이제 s는 숫자로 이루어진 문자열이다.

int.Parse를 이용해서 String에서 int로 손쉽게 바꿔주고 반환해주도록하자

끝
문자열 내 마음대로 정렬하기
문제에 대한 내용은 이렇다

핵심은 바로 오름차순 정렬이라는 것.
문자열의 오름차순 정렬은 유니코드 값 순서대로 정렬된다는 점을 기억하자.
자 일단 어떤 작업부터 해야할까 곰곰히 생각해보자면 각 문자열의 인덱스 n번째 글자를 맨 앞으로 옮겨주는 작업을 해야한다.
n번째 글자를 맨 앞에 놔두면 Array.Sort()를 이용해 순식간에 오름차순으로 정렬시킬수있다.
해당 작업을 해보자

answer이란 문자열 배열에 n번째문자 + 기존문자를 대입해준다.
그러면 어떻게되냐 기존 문자가 cat이고 지정해준 n번째 문자가 1번이라면 acat이 answer[i]번째에 들어가게 된다.
그런식으로 착착 지정해준 n번째 문자가 맨 앞에 위치하도록 바꿔준다음에

냅다 Sort를 갈겨버린다.

그리고 다시 반복문을 돌려 각 첫글자 하나씩을 빼서 다시 넣어주면 문제는 끝난다

짜란
오늘은 재밌는 문제 두개를 풀어보았다.
오랜만에 알고리즘 문제 정리인데 모르는 내용을 배우고 그걸 통해 해결하는 과정이 정말 재밌는거 같다.
2월 29일 TIL은 여기서 마치도록 하겠다.