독특한 차이점

주간 도전 183



Challenge , My solutions

잠시 휴식 후 돌아왔습니다 :)

작업 1: 고유한 어레이





arrayrefs 목록이 제공됩니다.

주어진 목록에서 중복된 arrayrefs를 제거하는 스크립트를 작성하십시오.

내 솔루션



Python 및 Perl 솔루션의 논리는 기본적으로 동일합니다. 외부 목록의 각 항목에 대해 목록의 이전 항목에 표시되었는지 확인합니다. Python에서 두 목록을 비교하는 것은 예상대로 작동합니다. 나는 Perl에서 이것을 할 수 있는 방법이 있다고 믿지 않기 때문에 두 배열이 같은지 확인하기 위해 same_array라는 함수를 작성했습니다.




$ ./ch-1.py "[[1,2], [3,4], [5,6], [1,2]]"
[1, 2], [3, 4], [5, 6]

$ ./ch-1.py "[[9,1], [3,7], [2,5], [2,5]]"
[9, 1], [3, 7], [2, 5]


작업 2: 날짜 차이




$date1 형식의 $date2YYYY-MM-DD 두 날짜가 제공됩니다.

주어진 날짜 사이의 차이를 연도와 날짜로만 구하는 스크립트를 작성하십시오.

내 솔루션



이것은 약간 까다 롭습니다. 데이트 수학은 결코 재미있지 않습니다. 그래서 방망이에서 이것이 시간대를 인식하지 않는다는 점에 유의하겠습니다. 그것은 실제로 2011년 12월에 skipped a day 소수의 국가에만 문제가 될 것입니다.

기본 논리는 다음과 같습니다.
  • date2date1보다 늦은지 확인하십시오. 챌린지는 날짜가 지정된 순서를 언급하지 않습니다.
  • date2와 date1 사이의 달력 연도 차이를 빼서 years로 저장합니다.
  • date2가 date1보다 빠른 연도인 경우 years 값에서 1을 뺍니다.
  • date2 - $years year(s)date1 사이의 일수를 계산합니다. Python의 경우 dateutils 모듈을 사용하여 이 작업을 수행합니다. Perl에서는 Date::Calc 모듈을 사용합니다.
  • 결과를 인쇄합니다. 나는 이것을 올바른 방법으로 수행하는 방법에 대해 약간의 두뇌 방귀를 가지고 있습니다. 내 풀 리퀘스트를 제출한 후에 확실히 알아낼 것입니다 :)




  • $ ./ch-2.py 2019-02-10 2022-11-01
    3 years 264 days
    
    $ ./ch-2.py 2020-09-15 2022-03-29
    1 year 195 days
    
    $ ./ch-2.py 2019-12-31 2020-01-01
    1 day
    
    $ ./ch-2.py 2019-12-31 2019-12-01
    30 days
    

    좋은 웹페이지 즐겨찾기