본문 바로가기
728x90
반응형

HackerRank38

findProfession 이진 트리의 특정 레벨과 위치에 있는 사람의 직업을 결정하는 문제입니다. 만약 레벨이 1인 경우, 해당 사람의 직업은 "Engineer"입니다. 그렇지 않은 경우, 해당 사람의 직업은 부모의 직업에 따라 결정됩니다. 부모가 "Engineer"인 경우, 해당 사람의 위치에 따라 “Engineer” 또는 "Doctor"로 번갈아가며 결정됩니다. 부모가 "Doctor"인 경우, 해당 사람의 위치에 따라 직업이 반대로 결정됩니다 (짝수 위치는 “Engineer”, 홀수 위치는 “Doctor”). string solution(int level, int pos) { return findProfession(level,pos); } string findProfession(int level,int pos){ if(pos.. 2024. 4. 8.
isTreeSymmetric 주어진 이진 트리가 중심을 기준으로 대칭인지 여부를 판단하는 문제입니다. 이를 확인하기 위해서는 각 측면이 서로 거울처럼 반영되는지 확인해야 합니다. 트리가 비어 있으면 대칭이라고 판단합니다. 그렇지 않은 경우, 왼쪽 서브트리와 오른쪽 서브트리를 비교하여 값이 같은지 확인합니다. 서브트리들이 대칭적으로 구성되어 있는지 재귀적으로 확인합니다. // // Binary trees are already defined with this interface: // class Tree { // public T value { get; set; } // public Tree left { get; set; } // public Tree right { get; set; } // } bool solution(Tree t) { .. 2024. 4. 5.
hasPathWithGivenSum 이진 트리에서 특정 합계를 갖는 경로가 있는지 확인하는 문제를 해결하는 함수입니다. 주어진 이진 트리는 각 노드가 정수 값을 가지고 있습니다. // // Binary trees are already defined with this interface: // class Tree { // public T value { get; set; } // public Tree left { get; set; } // public Tree right { get; set; } // } bool solution(Tree t, int s) { return hasPathWithGivenSum(t,s); } bool hasPathWithGivenSum(Tree t, int s){ if(t == null) return false; i.. 2024. 4. 2.
Top Competitors(SQL) 문제 배경: HackerRank에서는 여러 해커들이 여러 챌린지에 참여하고, 이들은 각각의 챌린지에 대한 점수를 획득합니다. 각 챌린지는 특정 난이도 레벨에 속하며, 해당 난이도에 따른 최대 점수가 있습니다. 문제 목표: 모든 챌린지에 대해 그 챌린지의 난이도에 따른 최대 점수를 얻은 해커들의 목록을 찾아야 합니다. 이러한 해커들 중에서 두 개 이상의 챌린지에서 최대 점수를 얻은 해커들만을 대상으로 합니다. 결과는 두 개 이상의 챌린지에서 최대 점수를 얻은 횟수로 내림차순 정렬되어야 합니다. 만약 동일한 횟수의 챌린지에서 최대 점수를 얻은 해커들이 여러 명이라면, 그들의 hacker_id로 오름차순 정렬됩니다. 데이터 구조: Hackers: 해커들의 정보를 포함하며, hacker_id와 name 필드를 .. 2023. 10. 20.
The Report(SQL) 학생 데이터 테이블에서 보고서를 생성하기 위한 SQL 쿼리를 작성하는 내용입니다. 이 문제 설명에서는 학생 데이터 테이블을 기반으로 보고서를 생성해야 합니다. 다음은 구체적인 요구 사항입니다. 등급이 8 미만인 학생은 제외해야 합니다. 보고서는 등급 내림차순(높은 등급 우선)으로 정렬되어야 합니다. 만약 동일한 등급(8-10)을 받은 학생이 여러 명이라면, 이름을 오름차순으로 정렬해야 합니다. 등급이 8 미만인 경우 이름을 "NULL"로 사용하고, 등급에 따라 내림차순으로 나열해야 합니다. 등급이 1-7인 학생이 여러 명인 경우, 점수를 오름차순으로 정렬해야 합니다. 이 문제를 해결하기 위해 지정된 기준에 따라 필요한 데이터를 검색하고 정렬하는 SQL 쿼리를 작성해야 합니다. 쿼리는 CASE 문을 사용하.. 2023. 10. 19.
Average Population of Each Continent(SQL) "CITY" 테이블과 "COUNTRY" 테이블을 사용하여 각 대륙별로 도시 인구의 평균값을 정수로 반내림하여 조회해야 합니다. 해결하기 위한 단계는 다음과 같습니다: "CITY" 테이블에서 각 도시의 인구를 가져옵니다. "CITY" 테이블의 데이터를 대륙별로 그룹화하고, 각 그룹에서 도시 인구의 평균을 계산합니다. 평균 값을 정수로 반내림합니다. SELECT B.CONTINENT, FLOOR(AVG(A.POPULATION)) FROM CITY A JOIN COUNTRY B ON A.COUNTRYCODE=B.CODE GROUP BY B.CONTINENT; 위의 쿼리는 "CITY" 테이블과 "COUNTRY" 테이블을 조인하여 도시의 대륙 정보를 가져온 후, 대륙에 따라 그룹화하고 도시 인구의 평균을 계산합니.. 2023. 10. 19.
African Cities(SQL) "CITY" 테이블과 "COUNTRY" 테이블을 사용하여 아프리카 대륙에 속하는 모든 도시의 이름을 조회하는 것을 요구합니다. 여기서 중요한 테이블은 "CITY"와 "COUNTRY" 테이블입니다. "CITY" 테이블에는 도시의 정보가 포함되어 있으며, "COUNTRY" 테이블에는 각 나라의 정보가 있습니다. 이 두 테이블은 "CITY.CountryCode"와 "COUNTRY.Code" 열을 사용하여 연결됩니다. 구체적으로 수행해야 하는 단계는 다음과 같습니다: "COUNTRY" 테이블에서 아프리카 대륙에 속하는 모든 나라를 선택합니다. 이를 위해 "COUNTRY" 테이블에서 "CONTINENT" 열을 조건으로 필터링하고, "CONTINENT"가 'Africa'인 나라들을 선택합니다. 선택한 아프리카 대륙.. 2023. 10. 17.
728x90
반응형