240404-TIL

2024. 4. 4. 22:35내일배움캠프

4월 4일

 

오늘도 알고리즘 문제에 엄청 당했다.

 

오늘 풀어볼 문제는

 

숫자 짝꿍

더보기

 

문제는 간단하다 그냥 X와 Y를 비교해서 같은 숫자가 있다면? 같은 숫자만 삭삭 골라서 리턴해주고

 

만약 같은 숫자가 하나도 없으면 -1 같은 숫자가 0으로만 구성이 되어있다면 '0' 하나만 리턴해주면 된다

 

아 물론 리턴해주기전에 내림차순으로 정렬해주고 리턴해주도록 하자

 

 

 

 

초기 솔루션은 이렇다 X와 Y가 주어지고 string인 answer을 반환해주면 되는데

 

이대로는 문제를 풀기 너무 답답하다. 입맛대로 바꿔주도록 하자

 

후딱 작성해주었다 문자열 X와 Y를 담아줄 '문자' List인 xList , yList를 만들어주고 미리 오름차순으로 정렬하도록 하자

 

그렇다면 나중에 '문자' List로 바꿔둔 answer에 차곡차곡 오름차순으로 담길태고 answer를 뒤집고 string으로 바꿔주면 손쉽게 내림차순으로 정렬할 수 있다.

 

indexX와 indexY는 이번에는 for문이 아니라 while문으로 반복을 돌릴 계획이기 때문에 xList와 yList의 각 원소에 접근할 index가 필요했다 그래서 미리 만들어 주었다.

 

 

반복문은 두 조건이 모두 참일때까지 반복한다

 

반복문을 돌면서 각 조건을 만족하면 조건문 안의 내용을 실행하는데

 

xList와 yList의 값이 같다면 answer에 xList의 값을 넣어주고 각 index를 동일하게 늘려준다

 

만약 같지않다면 xList와 yList 둘중 작은쪽을 골라 작은쪽의 인덱스만 증가시켜 주도록하자

 

 

내가 반복문을 잘 돌려서 나왔다면 answer에는 오름차순으로 같은 숫자들이 들어있을텐데

 

만약 answer의 카운트가 0이라면 x와 y중 같은 수가 하나도 없었다는 거니까 바로 return -1을 해준다

 

또한 answer의 마지막 인덱스의 값이 0이라면? 오름차순으로 정렬된 answer에 담긴 마지막 인덱스가 0이라면?

 

그건 answer이 0으로만 이루어져있다는 뜻이니깐 "0"을 리턴해주도록 하자

 

 

마지막으로 string str을 만들어주고 그곳엔 answer.ToArray()를 통해 string으로 바뀐 answer를 대입해주고

 

str을 리턴해주도록 하자

 

 

흠 좀 오래걸리나...? 어쨋든 성공!

오늘은 좀 쉽게 푼것처럼 보이지만 많은 시행착오를 겪었다

 

아직도 문자열을 내 마음대로 컨트롤 하지 못하는거 같다

 

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