2024. 2. 29. 22:03ㆍ내일배움캠프
2월 29일
오늘은 오랜만에 알고리즘 문제에 대해 정리해보자
오늘 풀어보았던 문제는 바로바로바로
하나씩 알아보도록 하자
숫자 문자열과 영단어
문제에 대한 내용은 이렇다
![](https://blog.kakaocdn.net/dn/bsl1pu/btsFpTmoohi/ldMBuu24SQ9kDELa869Ks1/img.png)
![](https://blog.kakaocdn.net/dn/Q10zP/btsFm07BisE/dIwRPLNkuLQJb8IUw4eC1k/img.png)
문제를 풀기위해 Replace 메서드를 이용했다.
![](https://blog.kakaocdn.net/dn/l1PnF/btsFkT2kbYj/JfgvEsrP09N4vNBgzIme2k/img.png)
문제에 나와있는 영단어표다
Replace 메서드를 이용하면
![](https://blog.kakaocdn.net/dn/chRTx5/btsFobHJuaR/q03YBQuSpVYnIg2zKrGHNK/img.png)
인스턴스에서 지정된 문자 혹은 문자열이 모두 다른 지정된 문자열로 바뀌는 새 문자열을 반환한다.
어떤 느낌인지 Visual Studio에서 확인해보자
노가다를 좀 해주자
![](https://blog.kakaocdn.net/dn/bQTstk/btsFm4Calke/00UOj5KrGagar1l5TgG2mK/img.png)
테스트용으로 문제와 비슷한 느낌의 s를 만들어주고
![](https://blog.kakaocdn.net/dn/bFR7DX/btsFmj0wM9J/AtQ56sUHEu2vL3sVH7cDF1/img.png)
s를 한땀한땀 바꿔주면
![](https://blog.kakaocdn.net/dn/ctJUY1/btsFoGARUoo/bkc7oFWlV5wQf2wWJLDkr1/img.png)
이렇게 문자열이 바뀐다. 어떤 느낌으로 사용하는지 알았으니 문제에 적용시켜보자
![](https://blog.kakaocdn.net/dn/bNkUgT/btsFlRcfvRP/ewOKkTFewc2xSZ3gq1jxuK/img.png)
한땀한땀 바꿀 문자열들을 다 입력해줬으니 이제 s는 숫자로 이루어진 문자열이다.
![](https://blog.kakaocdn.net/dn/c1uYIu/btsFm2qQKfI/fevygxFofGFRGbWRBDKab0/img.png)
int.Parse를 이용해서 String에서 int로 손쉽게 바꿔주고 반환해주도록하자
![](https://blog.kakaocdn.net/dn/Pi4VY/btsFspLKzzP/8OVEmRxROeQWBEnIHBz5yK/img.png)
끝
문자열 내 마음대로 정렬하기
문제에 대한 내용은 이렇다
![](https://blog.kakaocdn.net/dn/HocaY/btsFm4hUfUH/h0YuQokhS2Fe2OKSGr2wSk/img.png)
핵심은 바로 오름차순 정렬이라는 것.
문자열의 오름차순 정렬은 유니코드 값 순서대로 정렬된다는 점을 기억하자.
자 일단 어떤 작업부터 해야할까 곰곰히 생각해보자면 각 문자열의 인덱스 n번째 글자를 맨 앞으로 옮겨주는 작업을 해야한다.
n번째 글자를 맨 앞에 놔두면 Array.Sort()를 이용해 순식간에 오름차순으로 정렬시킬수있다.
해당 작업을 해보자
![](https://blog.kakaocdn.net/dn/btbcJ5/btsFpRWpiU1/RkXJYqxQwpJXWrjN4RlyP1/img.png)
answer이란 문자열 배열에 n번째문자 + 기존문자를 대입해준다.
그러면 어떻게되냐 기존 문자가 cat이고 지정해준 n번째 문자가 1번이라면 acat이 answer[i]번째에 들어가게 된다.
그런식으로 착착 지정해준 n번째 문자가 맨 앞에 위치하도록 바꿔준다음에
![](https://blog.kakaocdn.net/dn/bla4ey/btsFoGnnBuy/JUPOwy88kLhOxDWdHO0xLK/img.png)
냅다 Sort를 갈겨버린다.
![](https://blog.kakaocdn.net/dn/Fvvcb/btsFnYn9Xol/FFFejmdAM1CyckyDKIzIbk/img.png)
그리고 다시 반복문을 돌려 각 첫글자 하나씩을 빼서 다시 넣어주면 문제는 끝난다
![](https://blog.kakaocdn.net/dn/KPG09/btsFmlD2BjX/iBIeWykbps7QoNVJ95kbi0/img.png)
짜란
오늘은 재밌는 문제 두개를 풀어보았다.
오랜만에 알고리즘 문제 정리인데 모르는 내용을 배우고 그걸 통해 해결하는 과정이 정말 재밌는거 같다.
2월 29일 TIL은 여기서 마치도록 하겠다.
'내일배움캠프' 카테고리의 다른 글
240305-TIL (1) | 2024.03.05 |
---|---|
240304-TIL (0) | 2024.03.04 |
240228-TIL (0) | 2024.02.28 |
240227-TIL (0) | 2024.02.27 |
240226-TIL (0) | 2024.02.26 |