링크 : https://www.hackerrank.com/challenges/climbing-the-leaderboard/problem 문제> * 리더보드에 있는 순위별로 표시 되어 있는 점수표에 갱신 된 점수들의 순위를 구하라. - 단, 같은 점수는 동일 순위이다. - 기존 리더보드는 내림차순. - 갱신 될 리더보드는 오름차순. 해결방법. 1) HashSet을 이용해 받아온 리더보드의 중복제거 후 리스트로 변경. 2) 갱신 할 값들을 순차적으로 리스트의 마지막 부터 갱신 할 값보다 큰 값의 번지를 검색. *기존은 내림차순, 갱신은 오름차순이기 때문에 뒤에서부터 찾는게 더 빠르다. - 받은 번지에 +2 ( = +1 : 추가 될 위치, +1: 입력포맷.)를 해서 출력. - 찾은 번지 주소를 받아 놨다가 그..
링크 : https://www.hackerrank.com/challenges/mark-and-toys/problem 문제> * n개의 장난감과 k원 있을때(첫번째 입력받은 문자열) * k원으로 살 수 있는 장난감의 최대 수를 구하라. * 첫번째 입력받은 문자열은 n개로 이루어진 각 장난감의 가격이다. 해결방법. maximumToys 함수의 내부만 채우면 된다. 1) 장난감의 금액들을 저렴한 순으로 정렬. 2) 잔고에서 장난감을 구매. 장난감 수를 증가. - 잔고가 0보다 작아지면 구매를 멈추고 구매한 장난감 수를 리턴. using System; using System.Collections.Generic; using System.IO; using System.Linq; class Solution { sta..
링크 : https://www.hackerrank.com/challenges/picking-numbers/problem 문제> *두 수를 뺀 절대값이 1이하인 수의 집합 중 가장 수가 많은 집합을 구하라. *집합 내에서 어떤 수들과 계산해도 1이하가 나와야 한다. 해결방법. 1) 데이터를 리스트A로 만들어 정렬. 2) key에 숫자 value 숫자의 수를 넣을 딕셔너리B 생성. 3) 반복문을 돌면서 - 리스트A의 0번째 값을 딕셔너리B의 키값으로 0번째 값을 리스트A에서 전부 지우고 지운 수를 value로 추가해준다. - 리스트A의 데이터 수가 0이 될때까지 반복. 4) 딕셔너리B를 순차로 읽어온다. - 딕셔너리B의 이전값과 현재값 사이의 key값 차를 구해서 절대값이 1보다 작거나 같으면 두 값의 va..
링크 : https://www.hackerrank.com/challenges/jim-and-the-orders/problem 문제> 주문받은 시간과 걸리는 *시간을 합하여 *가장 짧은 순서로 *주문번호를 출력할것. 해결방법 1) 주문시간과 걸리는시간을 합한 리스트A를 만든다. 2) 출력할 리스트를 담을 빈 리스트C와 리스트A를 복사한 리스트B를 하나 더 만들어 정렬. 3) 주문 수 만큼 반복문을 돌면서 리스트 A를 순서대로 정렬된 리스트B에서 몇번째 번지에 있는지 찾는다. - 찾은 번지가 리스트 C에 이미 있다면 +1을 해서 같은 값이 없을 때 까지 번지를 증가. - 리스트C에 추가. 4) 리스트C의 수만큼 반복문을 돌면서 순서대로 주문 번호를 찾아서 출력. using System; using Syste..
링크 : https://www.hackerrank.com/challenges/missing-numbers/problem 문제> 두개의 리스트 A와 B를 비교해서 *A에 없는 B의 값 *반복 수가 다른 값 을 찾아서 오름차순으로 출력. 해결방법 0. (문제 잘못이해한부분) 순서대로 돌면서 B의 값이 A와 다를경우만 체크. 다르면 B의 다음값과 A를 비교. 같을경우 통과. 1번 Test 만 통과되고 나머지 Test 받았을때 실패. 해결방법 1. 1)A리스트와 B리스트를 정렬. 2)반복문을 돌면서 B리스트의 0번째 값과 같은값을 A리스트와 B리스트에서 전부 찾는다. - 찾아온 수를 비교해서 다르면 B리스트의 0번째 값을 출력할 데이터에 추가. - B리스트에서 B리스트의 0번째 값과 같은 값을 전부 삭제. - ..