728x90 Algorithm77 [Hacker Rank] Climbing the Leaderboard 문제 분석 랭크가 있고, 플레이어 점수가 있다 이둘을 매칭 시켜서 플레이어의 순위를 구한다. 근사값을 구해야 된다. 근사값을 구하기 위해서 - NavigableSet 을 이용하면 된다 NavigableSet.higher - 주어진 값보다 큰값 NavigableSet.lower - 주어진 값보다 낮은 값 NavigableSet.floor - NavigableSet.ceiling 구현 /* * Complete the 'climbingLeaderboard' function below. * * The function is expected to return an INTEGER_ARRAY. * The function accepts following parameters: * 1. INTEGER_ARRAY ranked.. 2022. 10. 23. [프로그래머스] 행렬 테두리 회전하기 문제 분석 분석이 좀 필요한 문제 였다. 2,2,5,4 가 주어 졌을때 회전 시킨다 문제를 보면 한칸씩 시계 방향으로 회전 시키면 될것 같다. 어떻게 기준을 잡을 것인가? Point1(2,2), Point2(5,4), StartPoint(point1.x, point1.y) 로 기준을 잡는다. 어떻게 위치를 바꿔 나갈 것인가? step1 오른쪽으로 이동: StartPoint y 가 point2 의 y 와 같아 질때까지 y 증가 step2 아래로 이동: StartPoint x 가 point2 의 x 와 같아 질때까지 x 증가 step3 왼쪽으로 이동: StartPoint y 가 point1 의 y 와 같아 질때까지 y 감소 step3 위로 이동: StartPoint x 가 point1 의 x 와 같아 질때까.. 2022. 7. 8. [LeetCode] 14. Longest Common Prefix 문제 분석 분석할게 없다 분석할게 있다면 시간복잡도, 메모리 부분일것 같다. 정렬을 할것 인가 안할것인가? 구현 class StringSizeComparator implements Comparator { @Override public int compare(String o1, String o2) { return o1.length() - o2.length(); } } class Solution { public String longestCommonPrefix(String[] strs) { StringBuffer prefix = new StringBuffer(); Arrays.sort(strs,new StringSizeComparator()); String minLengthString = strs[0]; for.. 2022. 4. 30. [LeetCode] 13.Roman to Integer 문제 분석 주어진 로마문자를 수로 변경해서 더한다. 단 예외가 있다. 아래 처럼 문자가 이루어져 있는 경우는 다음 값을 따른다. - "IV", 4, "IX", 9 - "XL", 40, "XC", 90 - "CD", 400, "CM", 900 좀더 분석을 해보면 - 앞에 놓여진 문자의 값 보다 뒤에 있는 문자의 값이 크면 - IV 인경우 V(뒤에 있는 문자값) - I(앞에 있는 문자값) 이 된다. 구현1 (무식하게 구현해보기) class Solution { private Map numberMap = new HashMap(); private Map complexNumberMap = new HashMap(); private class RomanScore { public StringBuffer s; public.. 2022. 4. 23. 이전 1 2 3 4 5 ··· 20 다음 728x90 반응형