TIL/kotlin 알고리즘

kotlin 프로그래머스 lv1 숫자 짝꿍

crablo 2024. 2. 14. 15:00
728x90

문제를 계속 풀어도 

에러가 났다.

내가 푼 방식은 아래와 같다.

 

변수 commonDigits는 X와 Y에서 공통으로 갖고 있고 중복은 피한 내림차순의 수로 지정했다.

if문에서 중복되는 숫자의 사이즈가 2이면서 0이 두번 들어가면 return을 0으로 하는것과 

공통으로 가지는 숫자가 없다면 -1을 반환하도록 하였고

또한 '0'이 공통 숫자로 존재하는지 확인한다. 만약 '0'이 있다면, 두 숫자 사이에 '0'이 공통으로

존재하는 경우이다.

 

  • commonDigits에 '0'이 존재하는 경우, commonDigits.filter { it != '0' }를 사용하여 '0'을 제외한 나머지 숫자로 이루어진 새로운 리스트인 nonZeroCommonDigits를 만든다.
  • 그리고 다음의 return 문에서는 nonZeroCommonDigits가 비어 있는지 확인한다. 만약 비어 있다면, 이는 나머지 숫자가 없다는 것이므로 "0"을 반환한다. 그렇지 않다면, joinToString("")를 사용하여 나머지 숫자를 문자열로 결합하고 해당 문자열을 반환한다.

이 코드 부분은 '0'이 가장 큰 공통 숫자인 경우를 처리하며, 다른 0이 아닌 공통 숫자가 있는 경우에는 해당 숫자만 포함된 결과를 반환하고, 만약 다른 0이 아닌 숫자가 없는 경우에는 "0"을 반환한다.

 

결과적으로 계속 에러가나서 다른사람의 코드를 참고했다.

다른사람의 코드를 봐도 어려웠다..

더 생각하고 풀어봐야할것 같다.

 

 
 
 
 

 

728x90