링크 : https://www.hackerrank.com/challenges/maximum-draws/problem 문제> 짐은 같은 색의 쌍이 맞는 양말을 찾고 있다. 그의 서랍에는 각각 색이 다른 쌍을 이루는 양말이 채워져 있다. 최악의 시나리오에서 짐이 일지하는 쌍의 양말을 찾을 때 까지 몇 개의 양말(x개)을 서랍에서 꺼내야 하는가. 입력 값은 짐의 서랍에 있는 양말 쌍(켤레)의 수. 짐이 뽑는 양말은 쌍이 아닌 낱개. 해결방법. 쌍을 이루는 최악의 시나리오이기 때문에 입력 받은 켤레의 수 보다 1을 더하면 된다. 양말의 수는 양말 쌍의 수 * 2. 그 중 쌍을 이루는 것의 최악의 수는 양말 쌍의 수 + 1 쌍의 수 만큼 서로 다른 양말을 뽑았더라도 쌍의 수보다 1 많으면 쌍이 생길 수 밖에 없다..
링크 : https://www.hackerrank.com/challenges/restaurant/problem 문제> 마사는 빵 한 개를 똑같은 조각으로 잘라야 한다. 빵 한조각 남지 않고 가능한 최대 길이를 갖는 사각형 l x b. * 한 조각도 남기지 않고 만들 수 있는 사각형 중 가장 큰 정사각형으로 만들었을 때 큰 정사각형의 수를 구하는 문제. 해결방법. * 최대 공약수 문제. l과 b중 작은 수를 받아 그 수 부터 1까지 l과 b 각각을 나눈 나머지가 0이 되는 수를 구한다. l * b(만들 수 있는 최대 빵의 넓이)를 위에서 구한 수의 제곱으로 나눈다. using System; using System.Collections.Generic; using System.IO; class Solution..
링크 : https://www.hackerrank.com/challenges/sherlock-and-array/problem 문제> 임의의 기준점을 잡고 좌, 우의 합이 같다면 YES, 기준점의 좌, 우 합이 같은게 없다면 NO를 출력하는 문제. *단, n이 1일 경우 YES를 출력. 해결방법. *기준이 되는 숫자의 좌, 우 합이기 때문에 좌와 우의 사이에 1개가 필요. left의 인덱스는 0, right의 인덱스는 n-1부터 시작. left를 우선으로 인덱스를 증가시키면서 합해 나다가다가 left의 합이 right보다 커질 때 right의 인덱스를 감소시켜 합을 증가. right의 인덱스와 - left인덱스가 2보다 클때(기준값 포함 두 수의 차이는 2)까지 반복. 최종 right의 합과 left의 합..
링크 : https://www.hackerrank.com/challenges/two-arrays/problem 문제> 배열A와 배열B에서 A의 값과 B의 같은 번지끼리 쌍으로 만들 었을 때 두 수의 합이 전부 K보다 크거나 같은 쌍이 있다면 yes, 아니면 no. *배열 각각의 순서 변경 가능. 해결방법. A는 오름차순, B는 내림차순 정렬. *합이 커야 하기 때문에 작은값 + 작은값이 아닌 작은값 + 큰값을 위해 배열 중 하나는 반대 차순으로 정렬한다. 순서대로 더해 k보다 작은 값이 나오면 NO를 리턴. 순서대로 더하는 중에 NO를 반환 안했다면 YES를 리턴. using System; using System.Collections.Generic; using System.IO; using System...
링크 : https://www.hackerrank.com/challenges/game-with-cells/problem 문제> 루크 행과 열이있는 그래프 용지를 가지고 있으며, 각 셀에 n * m개의 토대가 있는 군대가 있다는 것을 상상합니다. 그는 시트의 전략적 지점에서 소모품을 떨어 뜨려 각 드롭 포인트에 빨간색 점을 표시하려고합니다. [링크 그림 예제 참고. 한개의 부대는 1개, 쌍으로 붙어있는 부대는 사이에 한개를 찍을 수 있다. 최대 4개당 1개인듯. 겹치지는 못한다.] 'n'과 'm'을 감안할 때, 루크가 그의 모든 기지를 공급하기 위해 떨어 뜨려야하는 최소 패키지 수는 얼마인가? 해결방법. 행(m)에 몇개가 찍힐 수 있는지, 열(n)에 몇개가 찍힐 수 있는지 체크 후 곱하면 된다. 두개 당 ..