라벨이 ES6인 게시물 표시

[Hackerrank] Breaking the Records 문제 해설 - Algorithms > Implementation / Easy

이미지
Breaking the Records 1. 문제 설명 이 문제는 교내 농구 선수인 Maria의 시즌 성적을 구하는 문제이다. 한 시즌에서 n번 경기를 치루는 동안 각각의 점수를 s배열에 표기한다(s[0], s[1], ..., [sn-1]). 구하고자 하는 결과물은 다음과 같다. 한 경기에서 기록한 최고 점수가 업데이트 된 횟수 한 경기에서 기록한 최저 점수가 업데이트 된 횟수 예를 들면 다음과 같이 한 시즌 경기를 치뤘을 경우,  Maria의 한 시즌 성적 최고 점수는 10 -> 20 -> 25로 총 2번 업데이트 됐다(10점은 초기값). 그리고 최저 점수는 10 -> 5 -> 4 -> 2 -> 1로 총 4번 업데이트 됐다(10은 초기값). *원본 링크:  https://www.hackerrank.com/challenges/breaking-best-and-worst-records/problem 2. Input Format 첫번째 줄에는 한 시즌에 치뤄진 경기 수(n)가 주어진다. 부전째 줄에는 Maria가 각 경기에서 기록한 점수(s)가 주어진다. 3. Output Format 최고 점수와 최저 점수가 업데이트 된 횟수를 각각 출력한다. Sample Input 1 9 10 5 20 20 4 5 2 25 1 Sample Output 1 2 4 Sample Input2 10 3 4 21 36 10 28 35 5 24 42 Sample Output2 4 0 Solution 이 문제는 반복문을 통해 해결 할 수 있다. 초기 최고점과 최저점을 시즌 첫번째 경기의 점수로 설정한다. 경기 횟수만큼 반복문을 실행한다. 반복문 안에서 현재 최고점보다 더 높은 점수가 발생하면 increase가 발생했다고 생각하고 최고점 카운트를 1 증가시킨다. 3번과 동일한 형태로 현재 최저점보다 더 낮은 점수가 발생하면 decrease가 발생했다고 생각하고 최저점 카운트를 1 증가시킨다. 최종 코드는 ...

[Hackerrank] Between Two Sets 문제 해설 - Algorithms > Implementation / Easy

이미지
Between Two Sets 1. 문제 설명 이 문제는 정수로 이루어진 두 배열 A, B의 원소 중 다음 조건을 충족하는 정수(x)의 갯수를 구하는 문제이다. All elements in A are factors of x. x is a factor of all elements in B. 이를 다르게 표현하면 다음과 같이 표현 할 수 있다. x mod a[i] = 0 for every a[i] in A b[i] mod x = 0 for every b[i] in B 예를 들어, A = {2, 6} 이고 B = {12} 일 경우 x 에 속할 수 있는 값은 6 과 12 가 된다. *원본 링크 :  https://www.hackerrank.com/challenges/between-two-sets/problem 변수 설명 A: a[i]로 구성된 정수 배열 B: b[i]로 구성된 정수 배열 n: A의 원소 갯수 m: B의 원소 갯수 x: 위의 조건을 충족하는 정수 2. Input Format 첫번째 줄에는 n과 m값이 주어진다. 두번째 줄엔는 A의 원소인 a[i] 값이 주어진다. 세번째 줄엔는 B의 원소인 b[i] 값이 주어진다. 3. Output Format A와 B 배열에서 위의 조건을 만족하는 정수 x의 갯수 출력 4. 제약조건 Sample Input 2 3 2 4 16 32 96 Sample Output 3 Solution 처음 접근했던 방법은 위에서 주어진 식을 그대로 풀어서 문제를 해결하는 식이었다. 순서는 다음과 같다. B에 속해있는 원소들의 공약수를 모두 구한다. 1번에서 구한 공약수 중 A에 속한 모든 원소로 나누었을 때, 나머지 값이 모두 0이 되는 공약수가 있는지 찾는다. 2번을 충족하는 공약수로 이루어진 새로운 배열을 만든다. 3번에서 구한 배열의 length 값을 출력한다. 위의...

[Hackerrank] Kangaroo 문제 해설 - Algorithms > Implementation / Easy

이미지
Kangaroo 1. 문제 설명 이 문제는 서로 다른 시작 지점과 점프 크기를 가진 두 마리의 캥거루가 경주를 할 때, 뒤에서 출발한 캥거루와 앞선 지점에서 출발한 캥거루가 똑같은 시점에 같은 지점에 있을 수 있는지 묻는 문제이다(마치 어렸을 적 수학 책에서 나왔던 문제와 비슷하다..). * 원본 링크 :  https://www.hackerrank.com/challenges/kangaroo/problem 변수 설명 x1 : 첫번째 캥거루의 시작 지점 x2 : 두번째 캥거루의 시작 지점 v1 : 첫번째 캥거루가 한 번에 점프 할 수 있는 거리 v2 : 두번째 캥거루가 한 번에 점프 할 수 있는 거리 2. Input Format 첫번째 줄에 x1, v1, x2, v2의 값이 주어진다. 3. Output Format 두 캥거루가 똑같은 지점에 똑같은 타이밍에 존재 할 수 있다면 YES 출력, 그렇지 않다면 NO 출력 4. 제약 조건 Sample Input1 0 3 4 2 Sample Output1 YES Sample Input2 0 2 5 3 Sample Output 2 NO Solution 이 문제를 처음 접하고 떠올린 풀이 방법은 다음과 같다. x1 < x2 이므로, v1 < v2 면 두 캥거루는 만날 수 없으므로 NO 출력 1 <= v1, v2 <= 10000 이므로 10000번 반복문을 수행하면서 두 캥거루가 같아지는 지점이 존재하면 YES 출력, 아니면 NO 출력 1번은 괜찮지만, 2번의 경우 시간 복잡도가 최대 O(10000)까지 올라갈 수 있는 무적이나 비효율적인 알고리즘이 탄생할 것 같았다. 그래서 조금 더 생각해보니 아래와 같은 식이 도출 되었다. 두 캥거루가 동일한 지점에서 만나려면 아래 식이 성립해야 한다. x1 + n * v1 = x2 + n ...

[Hackerrank] Apple and Orange 문제 해설 - Algorithms > Implementation / Easy

이미지
Apple and Orange 1. 문제 설명 이 문제는 사과 나무와 오랜지 나무 사이에 있는 Sam의 집에 사과와 오랜지 열매가 얼마나 많이 떨어졌는지 구하는 알고리즘 문제다. 자세한 내용은 아래 링크에서 확인 할 수 있다. * 원본 링크 :  https://www.hackerrank.com/challenges/apple-and-orange/problem 문제 이해를 위한 이미지 위의 이미지에서 볼 수 있듯이 모든 사물은 x-축 상에 있다고 가정한다. 주어지는 변수를 설명하면 다음과 같다. s: Sam의 집이 시작되는 지점 t: Sam의 집이 끝나는 지점 a: 사과 나무의 위치 b: 오랜지 나무의 위치 m: 사과의 갯수 n: 오랜지의 갯수 d: 각각의 열매(사과, 오랜지)가 해당 과일 나무와 떨어져있는 거리. 값이 음수(-)일 경우 x-축의 좌측에, 양수(+)일 경우 우측에 존재한다는 의미이다. 2. Input Format 첫번째 줄에는 s와 t값이 구분되어 주어진다. 두번째 줄에는 a와 b값이 구분되어 주어진다. 세번째 줄에는 m과 n값이 주어진다. 네번쨰 줄에는 m개의 사과가 떨어진 지점과 a지점까지의 거리를 표시한다. 다섯번쨰 줄에는 n개의 오랜지가 떨어진 지점과 b지점까지의 거리를 표시한다. 3. Output Format 첫번째 줄에는 Sam의 집에 떨어진 사과의 갯수를 표시한다. 두번째 줄에는 Sam의 집에 떨어진 오랜지의 갯수를 표시한다. 4. 제약조건 Sample Input 7 11 5 15 3 2 -2 2 1 5 -6 Sample Output 1 1 Solution 처음 이 문제를 접했을 때 내가 생각한 해결 방법은 너무 단순했다. a < s < t < b 이므로,  떨어진 각 사과( apple[i] )의 좌표와 사과 나무의 위치를 더한 값이 s보...

[Javascript] destructure에 대해서 알아보자

ES2015(ES6)에 추가된 문법으로 배열이나 객체를 쪼개서..? 사용할 수 있다. 자세한 사용 방법은 아래 링크 참조할것 http://beomy.tistory.com/18