HackerRank Challenges
문제 이해 Hackers, Challenges 테이블에서 해커 아이디, 이름, 만든 문제 수를 가져와야 한다. 이 때, 문제 수의 내림차순으로 정렬하고, 문제 수가 같다면 해커 아이디의 오름차순으로 정렬한다. 만약 만든 문제 수가 최대가 아니면서 두 명 이상이 같은 수의 문제를 만들었을 경우 결과에서 제외한다. 예를 들어, A가 7개, B가 6개, C가 6개, D가 7개의 문제를 만들었다고 하자. 최대 문제 수는 7인데, B와 C가 똑같이 6개씩 문제를 만들었다. 이 경우 B와 C를 결과에서 제외한다는 뜻이다. A와 D는 최대 문제 수인 7개를 만들었으므로 둘 다 결과에 포함한다. hacker_id : 해커의 아이디 name : 해커의 이름 challenge_id : 문제의 아이디 hacker_id : ..
백준 2564번 경비원
문제 이해 블록의 가장자리로만 이동이 가능할 때, 동근이와 각 상점까지의 최소 거리의 합을 구하는 문제다. 위의 그림에서 동근이는 X, 상점은 1, 2, 3이다. 상점 1까지의 최소 거리는 12, 2까지는 6, 3까지는 5이고 그 합은 23이다. 풀이 설명 동근이가 있는 면을 기준으로 왼쪽이나 오른쪽 면에 있는 상점들까지의 최소 거리는 각각 왼쪽으로 가는 길, 오른쪽으로 가는 길이다. 하지만 반대편에 있는 상점은 동근이를 기준으로 왼쪽으로 도는것과 오른쪽으로 도는 것 중 하나가 최소 거리다. 입력은 동서남북을 각각 4, 3, 2, 1로, 해당하는 면에서 상점의 위치는 가로면은 왼쪽부터, 세로면은 위쪽부터의 거리로 주어진다. 그렇기 때문에 동근이가 어떤 면에 있느냐에 따라 계산 식이 달라진다. 하지만 위의..