본문 바로가기

Languages/Scala-99-Problems

(4)
Scala-99-Problems 솔루션 : P14 ~ P18 이전 포스팅과 같이 연관성 있는 문제가 아니라면 추후 포스팅부터는 5문제씩 끊어서 솔루션을 달 예정입니다 :) 시작할게요! P14. 리스트의 원소들을 복제하는 함수를 작성하시오. P14. Duplicate the elements of a list. 이 문제도 Head -> Tail로 이동하며 head를 두번씩 append하여 재귀적인 방법으로 쉽게 해결할 수 있습니다. 소스 코드는 다음과 같습니다 : def duplicate[T](list: List[T]): List[T] = list match { case Nil => Nil case head :: tail => head :: head :: duplicate(tail) } P15. 리스트의 원소들을 주어진 숫자만큼 복제하는 함수를 작성하시오. P15. ..
Scala-99-Problems 솔루션 : P08 ~ P13 이번 글에서는 리스트 내 중복 및 Run-length encoding에 대한 문제인 P08 ~ P13 에 대한 솔루션을 포스팅하고자 합니다. 마찬가지로 리스트의 head::tail 특성을 활용하여 재귀적으로 작성하였습니다. P08. 리스트 내에 연속하여 중복된 원소들을 제거하는 함수를 작성하시오. 만약 리스트가 반복되는 원소를 가지고 있다면 단일 원소로 대체되어야 하며, 원소들의 순서는 변경되어서는 안된다. P08. Eliminate consecutive duplicates of list elements. If a list contains repeated elements they should be replaced with a single copy of the element. The order of the..
Scala-99-Problems 솔루션 : P05 ~ P07 지난 글에서는 가장 기본적인 리스트 내에서 원소를 찾는 문제들인 P01~P04에 대한 솔루션을 작성하였습니다. P08~P13 의 내용이 리스트 내 중복 제거 및 Run-length encoding에 대한 내용이라 해당 내용들을 한번에 묶어서 정리하기 위해 이번 글에서는 P05~P07 까지의 솔루션에 대해 작성하려 합니다. P05. 리스트 내 원소들의 순서가 반전된 리스트를 반환하는 함수를 작성하시오. P05. Reverse a list. 저는 재귀적으로 작성하는 솔루션을 선호해 이번 문제에서도 list의 head::tail 특성을 활용하였습니다. 재귀적으로 맨 앞 head를 Nil이 나올 떄 까지 tail에 마지막에 이어붙인다면 리스트 전체가 반전됩니다. 소스 코드는 다음과 같습니다 : def rever..
Scala-99-Problems 솔루션 : P01 ~ P04 안녕하세요! Scala 공부를 위해, 스칼라로 작성된 코딩 테스트 문제를 풀고 있습니다. Phil Gold의 99-Scala-Problems를 정리해 둔 다음 git을 clone하여 하나씩 문제를 풀고 있습니다. S-99: Ninety-Nine Scala Problems As in the previous section, we will start with a skeleton file, logic1.scala, and add code to it for each problem. The difference here is that the file starts out almost empty. First of all, consult a good book on discrete mathematics or algorith..