티스토리 뷰
Problem (문제)
Sam's house has an apple tree and an orange tree that yield an abundance of fruit. In the diagram below, the red region denotes his house, where s is the start point, and t is the endpoint. The apple tree is to the left of his house, and the orange tree is to its right. You can assume the trees are located on a single point, where the apple tree is at point a, and the orange tree is at point b.
Sam의 집은 풍성한 과일을 생산하는 사과 나무와 오렌지 나무가 있습니다. 아래의 그림에서, 시작 지점이 s이고 끝 지점이 t인 빨간색 영역은 그의 집을 나타냅니다. 사과 나무는 집의 왼쪽에, 오렌지 나무는 오른쪽에 있습니다. 사과 나무는 a 지점에, 오렌지 나무는 b 지점에 있다고 가정할 수 있습니다.
When a fruit falls from its tree, it lands d units of distance from its tree of origin along the x-axis. A negative value of d means the fruit fell d units to the tree's left, and a positive value of d means it falls d units to the tree's right.
과일이 나무에서 떨어질 때, 나무들의 원점에서 x축을 따라 d 거리에 위치하게 됩니다. 음수 값은 왼쪽으로, 양수 값은 오른쪽으로 과일이 떨어졌다는 것을 의미합니다.
Given the value of d for m apples and n oranges, determine how many apples and oranges will fall on Sam's house (i.e., in the inclusive range [s, t])?
m개의 사과와 n개의 오렌지의 d값이 주어질 때, Sam의 집(즉, [s,t] 포함 범위 안)에 몇 개의 사과와 오렌지가 떨어질지 알아내세요.
For example, Sam's house is between s=7 and t=10. The apple tree is located at a=4 and the orange at b=12. There are m=3 apples and n=3 oranges. Apples are thrown apples=[2,3,-4] units distance from a, and oranges=[3,-2,-4] units distance. Adding each apple distance to the position of the tree, they land at [4+2,4+3,4+-4=[6,7,0]. Oranges land at [12+3,12+-2,12+-4]=[15,10,8]. One apple and two oranges land in the inclusive range 7-10 so we print
예를 들어, Sam의 집이 s=7이고, t=10입니다. 사과 나무는 a=4, 오렌지 나무는 b=12입니다. m=3개의 사과와 n=3개의 오렌지가 있습니다. 사과는 a에서 부터 apples=[2,3,-4]거리에 떨어지고 오렌지는 oranges=[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
Function Description (함수 설명)
Complete the countApplesAndOranges function in the editor below. It should print the number of apples and oranges that land on Sam's house, each on a separate line.
함수 countApplesAndOranges를 아래의 에디터에서 완성하세요. 각 줄에서 Sam의 집에 위치한 사과와 오렌지의 개수를 출력하세요.
countApplesAndOranges has the following parameter(s):
countApplesAndOranges는 다음의 매개 변수가 있습니다:
- s: integer, starting point of Sam's house location. (정수, Sam 집의 시작 지점)
- t: integer, ending location of Sam's house location. (정수, Sam 집의 끝지점)
- a: integer, location of the Apple tree. (정수, 사과 나무의 위치)
- b: integer, location of the Orange tree. (정수, 오렌지 나무의 위치)
- apples: integer array, distance at which each apple falls from the tree. (정수 배열, 나무에서 떨어진 사과의 거리)
- oranges: integer array, distance at which each oranges falls from the tree. (정수 배열, 나무에서 떨어진 오렌지의 거리)
Solution (풀이)
function countApplesAndOranges(s, t, a, b, apples, oranges) {
// 효율적인 시간 관리를 위해 배열의 길이 저장
const applesLength = apples.length, orangesLength = oranges.length;
// Sam의 집에 떨어진 사과와 오렌지의 개수를 담을 변수
let applesCount = 0, orangesCount = 0;
// Sam의 집에 포함되는지 확인하는 함수
const checkInclusive = (distance) => s <= distance && distance <= t;
for(let i=0; i<applesLength; i++) {
const apple = apples[i] + a; // 떨어진 사과의 거리
if(checkInclusive(apple)) applesCount++;
}
for(let i=0; i<orangesLength; i++) {
const orange = oranges[i] + b; // 떨어진 오렌지의 거리
if(checkInclusive(orange)) orangesCount++;
}
console.log(applesCount);
console.log(orangesCount);
}
'Algorithms > Hacker Rank' 카테고리의 다른 글
[Hacker Rank] Extra Long Factorials (Go) (0) | 2020.12.08 |
---|---|
[Hacker Rank] Birthday Cake Candles (Javascript) (0) | 2020.12.02 |
[Hacker Rank] Staircase (Javascript) (0) | 2020.11.30 |
[Hacker Rank] Diagonal Difference (Javascript) (0) | 2020.09.18 |