본문 바로가기

Algorithm

(29)
[leetcode] 1342. Number of Steps to Reduce a Number to Zero 문제해석 num이 주어졌을 때, 특정 작업을 반복해서 num이 0이하일 때 몇번의 반복인지 반환 각 작업은 num이 2로 나누어 떨어지는경우(짝수) 2로 나누거나, 그 외에 2로 나누어지지 않는 경우(홀수)는 1을 뺀다. 답 예 public int numberOfSteps(int num) { int step = 0; while (num > 0) { if (num % 2 == 0) { num = num /2; } else { num = num -1; } step++; } return step; }
[leetcode] 1337. The K Weakest Rows in a Matrix 문제해석 m x n 매트릭스가 주어지고 각 값이 1(병사), 0(시민)으로 할당된다 병사는 항상 시민 앞쪽에 있을 수 있으므로 행렬에서 모두 왼쪽에 위치한다. 이 때 병사의 수에 따라서 약함이 결정된다 예 Input: mat = [[1,1,0,0,0], [1,1,1,1,0], [1,0,0,0,0], [1,1,0,0,0], [1,1,1,1,1]], k = 3 Output: [2,0,3] Explanation: The number of soldiers in each row is: - Row 0: 2 - Row 1: 4 - Row 2: 1 - Row 3: 2 - Row 4: 5 The rows ordered from weakest to strongest are [2,0,3,1,4]. 인 경우 각 병사의 수에 ..
[leetcode] 876. Middle of the Linked List 문제해석 링크드리스트 head가 주어질 때 링크드리스트의 중간지점을 찾기 예시에서 중간이 정확히 있는경우 중간노드를 반환하면 되지만 만약 중간이 2개라면 더 뒤에 있는 노드를 반환하면 된다 정답 예 /** * Definition for singly-linked list. * public class ListNode { * int val; * ListNode next; * ListNode() {} * ListNode(int val) { this.val = val; } * ListNode(int val, ListNode next) { this.val = val; this.next = next; } * } */ public ListNode middleNode(ListNode head) { ListNode slo..
[leetcode] 412. Fizz Buzz 문제 해석 정수 n이 주어지고 정답의 해당하는 배열 answer(1번부터)는 다음과 같은 조건 3과 5로 나눠지는 경우 "FizzBuzz"로 출력 3으로만 나눠지는 경우 "Fizz"로 출력 5로만 나눠지는 경우 "Buzz"로 출력 위 조건을 제외한 나머지는 그냥 주어진 숫자를 string형태로 출력 정답코드 예 public List fizzBuzz(int n) { List list = new ArrayList(); //1부터 n까지 for (int i = 1; i
[leetcode] 383. Ransom Note 문제해석 문제번역 ransomeNote의 문자들을 magazine의 문자열의 부분들로 만들 수 있을까 (단 magazine의 문자열은 한번씩만 사용가능함) ransomeNote와 magazine은 모두 소문자 각 길이는 1부터 10의 5승(10만) 예) Input: ransomNote = "a", magazine = "b" Output: false rasonNote는 'a'이고 magazine은 'b'이므로 만들 수 없다. Input: ransomNote = "aa", magazine = "aab" Output: true rasonNote는 'aa'이고 magazine은 'aab'이므로 만들 수 있다. 문제예시에는 안나오지만 코드를 실행해보면 rasonNote는 'aab'이고 magazine은 'aba'..