2024. 4. 4. 22:35ㆍ내일배움캠프
4월 4일
오늘도 알고리즘 문제에 엄청 당했다.
오늘 풀어볼 문제는
숫자 짝꿍
![](https://blog.kakaocdn.net/dn/en2krL/btsGmCEQOMv/MZVBT4SkCAoVSMPRa6mcHk/img.png)
문제는 간단하다 그냥 X와 Y를 비교해서 같은 숫자가 있다면? 같은 숫자만 삭삭 골라서 리턴해주고
만약 같은 숫자가 하나도 없으면 -1 같은 숫자가 0으로만 구성이 되어있다면 '0' 하나만 리턴해주면 된다
아 물론 리턴해주기전에 내림차순으로 정렬해주고 리턴해주도록 하자
![](https://blog.kakaocdn.net/dn/Rphgu/btsGoRggyie/hzJzK5f0zCTmVLNDSRh9y1/img.png)
초기 솔루션은 이렇다 X와 Y가 주어지고 string인 answer을 반환해주면 되는데
이대로는 문제를 풀기 너무 답답하다. 입맛대로 바꿔주도록 하자
![](https://blog.kakaocdn.net/dn/b1dE7i/btsGmUytkdW/eDlGoLA8ihxYIvp4p64I50/img.png)
후딱 작성해주었다 문자열 X와 Y를 담아줄 '문자' List인 xList , yList를 만들어주고 미리 오름차순으로 정렬하도록 하자
그렇다면 나중에 '문자' List로 바꿔둔 answer에 차곡차곡 오름차순으로 담길태고 answer를 뒤집고 string으로 바꿔주면 손쉽게 내림차순으로 정렬할 수 있다.
indexX와 indexY는 이번에는 for문이 아니라 while문으로 반복을 돌릴 계획이기 때문에 xList와 yList의 각 원소에 접근할 index가 필요했다 그래서 미리 만들어 주었다.
![](https://blog.kakaocdn.net/dn/bPHjvr/btsGnMzTkT1/lajA0biWFGoyQTqKly4v4k/img.png)
반복문은 두 조건이 모두 참일때까지 반복한다
![](https://blog.kakaocdn.net/dn/mFutI/btsGoSTHzdI/bKOKl494D7t9axuPTEdGa1/img.png)
반복문을 돌면서 각 조건을 만족하면 조건문 안의 내용을 실행하는데
xList와 yList의 값이 같다면 answer에 xList의 값을 넣어주고 각 index를 동일하게 늘려준다
만약 같지않다면 xList와 yList 둘중 작은쪽을 골라 작은쪽의 인덱스만 증가시켜 주도록하자
![](https://blog.kakaocdn.net/dn/cim923/btsGlVES2KZ/fGRHEATjB5KXaa2MRcG2Dk/img.png)
내가 반복문을 잘 돌려서 나왔다면 answer에는 오름차순으로 같은 숫자들이 들어있을텐데
만약 answer의 카운트가 0이라면 x와 y중 같은 수가 하나도 없었다는 거니까 바로 return -1을 해준다
또한 answer의 마지막 인덱스의 값이 0이라면? 오름차순으로 정렬된 answer에 담긴 마지막 인덱스가 0이라면?
그건 answer이 0으로만 이루어져있다는 뜻이니깐 "0"을 리턴해주도록 하자
![](https://blog.kakaocdn.net/dn/bzdoKt/btsGmdkZE7Z/NF6KnBg5KScFu1Fhxuwus0/img.png)
마지막으로 string str을 만들어주고 그곳엔 answer.ToArray()를 통해 string으로 바뀐 answer를 대입해주고
str을 리턴해주도록 하자
![](https://blog.kakaocdn.net/dn/cWrc1D/btsGnG0MXDP/bNksxRxQdLmNJE1nTlwIU1/img.png)
흠 좀 오래걸리나...? 어쨋든 성공!
오늘은 좀 쉽게 푼것처럼 보이지만 많은 시행착오를 겪었다
아직도 문자열을 내 마음대로 컨트롤 하지 못하는거 같다
4월 4일 TIL은 여기서 마치도록 하겠다.
'내일배움캠프' 카테고리의 다른 글
240411-TIL (0) | 2024.04.11 |
---|---|
240409-TIL (0) | 2024.04.09 |
240403-TIL (0) | 2024.04.03 |
240402-TIL (0) | 2024.04.02 |
240401-TIL (0) | 2024.04.01 |