Kotlin의 Hackerrank-Apple 및 Orange 솔루션

2678 단어
샘의 집에는 풍부한 열매를 맺는 사과나무와 오렌지 나무가 있습니다. 아래 제공된 정보를 사용하여 Sam의 집에 떨어지는 사과와 오렌지의 수를 결정하십시오.

아래 다이어그램에서:
  • 빨간색 영역은 집을 나타냅니다. 여기서 s는 시작점이고 t는 끝점입니다. 사과나무는 집 왼쪽에 있고 오렌지 나무는 오른쪽에 있습니다.
  • 사과나무가 점 a에 있고 오렌지 나무가 점 b에 있는 단일 점에 나무가 있다고 가정합니다.
  • 과일이 나무에서 떨어지면 원래 나무에서 x 축을 따라 d 단위의 거리에 떨어집니다. *d의 음수 값은 열매가 나무의 왼쪽으로 d만큼 떨어진 것을 의미하고 d의 양수 값은 나무의 오른쪽으로 d만큼 떨어진 것을 의미합니다. *

  • m개의 사과와 n개의 오렌지에 대한 d 값이 주어지면 얼마나 많은 사과와 오렌지가 Sam의 집에 떨어질지 결정하십시오(즉, 포함 범위 [s,t])?
    예를 들어 Sam의 집은 s=7과 t=10 사이에 있습니다. 사과나무는 a=4에 있습니다.
    그리고 b=12에 있는 오렌지 m=3 _apples과 _n=3 오렌지가 있습니다. 사과는 a에서 사과=[2,3,-4]단위 거리에, 오렌지=[3,-2,-4]단위 거리에 던져집니다. 각 사과 거리를 나무 위치에 더하면 [4+2,4+3,4+-4]=[6,7,0]에 도달합니다. 오렌지는 [12+3,12+-2,12+-4] =[15,10,8]에 도달합니다. 하나의 사과와 두 개의 오렌지는 포함 범위 7-10에 도달하므로 인쇄합니다.

    1
    2
    


    기능 설명

    아래 편집기에서 countApplesAndOranges 함수를 완성하십시오. Sam의 집에 떨어진 사과와 오렌지의 수를 각각 별도의 줄에 인쇄해야 합니다.

    countApplesAndOranges에는 다음 매개변수가 있습니다.
  • s: 정수, 샘의 집 위치의 시작점.
  • t: 정수, Sam의 집 위치의 종료 위치.
  • a: 정수, 사과나무의 위치.
  • b: 정수, 오렌지 나무의 위치.
  • apples: 정수 배열, 각 사과가 나무에서 떨어지는 거리.
  • oranges: 정수 배열, 각 오렌지가 나무에서 떨어지는 거리.

  • 입력 형식

    첫 번째 줄에는 s와 t의 각 값을 나타내는 두 개의 공백으로 구분된 정수가 포함되어 있습니다.
    두 번째 줄에는 각각 a와 b의 값을 나타내는 두 개의 공백으로 구분된 정수가 포함됩니다.
    세 번째 줄에는 각각 m과 n의 값을 나타내는 두 개의 공백으로 구분된 정수가 포함됩니다.
    네 번째 줄에는 각 사과가 점 a에서 떨어지는 각각의 거리를 나타내는 공백으로 구분된 정수가 포함됩니다.
    다섯 번째 줄에는 각 오렌지가 지점 b에서 떨어지는 각각의 거리를 나타내는 n개의 공백으로 구분된 정수가 포함됩니다.

    제약
  • 1 < s, t, a, b, m, n < 10
  • -10 < d < 10
  • a < s < t < b

  • 출력 형식

    두 개의 서로 다른 줄에 두 개의 정수를 인쇄합니다.
  • 첫 번째 정수: 샘의 집에 떨어진 사과의 수.
  • 두 번째 정수: 샘의 집에 떨어지는 오렌지의 수.

  • 샘플 입력 0

    7 11
    5 15
    3 2
    -2 2 1
    5 -6
    
    


    샘플 출력 0

    1
    1
    
    


    대답:

     fun countApplesAndOranges(
            s: Int,
            t: Int,
            a: Int,
            b: Int,
            apples: Array<Int>,
            oranges: Array<Int>
        ): Unit {
             var countApple = 0
             var countOrang = 0
    
             for (i in apples) {
                 var appleDistance = a + i
                 if (s <= appleDistance && appleDistance <= t)
                     countApple = countApple + 1
             }
             for (i in oranges) {
                 var orangeDistance = b + i
                 if (s <= orangeDistance && orangeDistance <= t)
                     countOrang = countOrang + 1
             }
             println(countApple)
             println(countOrang)
     }
    

    좋은 웹페이지 즐겨찾기