Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 구현
- 코테
- SQL
- 자바
- string
- Matrix
- greedy
- 파이썬
- two pointers
- geometry
- simulation
- Number Theory
- java
- database
- Stack
- Data Structure
- 코딩테스트
- Method
- implement
- Math
- Binary Search
- Counting
- Class
- sorting
- bit manipulation
- array
- Binary Tree
- Tree
- dynamic programming
- hash table
Archives
- Today
- Total
코린이의 소소한 공부노트
[LeetCode/Easy] 2357. Make Array Zero by Subtracting Equal Amounts 본문
코딩테스트 풀이/JAVA
[LeetCode/Easy] 2357. Make Array Zero by Subtracting Equal Amounts
무지맘 2023. 5. 2. 14:131. Input
1) int[] nums
2. Output
1) 다음과 같은 작업을 반복할 때, 모든 요소들을 0으로 만드는 최소 횟수를 반환
- nums에서 가장 작은 양의 정수 x를 고른다.
- nums에 있는 모든 양수에서 x를 뺀다.
3. Constraint
1) 1 <= nums.length <= 100
2) 0 <= nums[i] <= 100
4. Example
Input: nums = [1,5,0,3,5] -> Output: 3
설명:
- x = 1 -> nums = [0,4,0,2,4]
- x = 2 -> nums = [0,2,0,0,2]
- x = 2 -> nums = [0,0,0,0,0]
5. Code
1) 첫 코드(2023/05/02)
class Solution {
public int minimumOperations(int[] nums) {
int answer = 0;
Arrays.sort(nums);
for(int i=0 ; i<nums.length ; i++){
if(nums[i]!=0){
int x = nums[i];
for(int j=i ; j<nums.length ; j++)
nums[j] -= x;
answer++;
}
}
return answer;
}
}
2) 힌트를 보고 다시 해본 코드(2023/05/02)
class Solution {
public int minimumOperations(int[] nums) {
HashSet<Integer> set = new HashSet<>();
for(int i : nums)
if(!set.contains(i) && i!=0)
set.add(i);
return set.size();
}
}
- 2번코드가 압도적으로 좋다.
- 결국 문제에서 말하는 최소 횟수는 0을 제외한 중복되지 않은 수의 개수였다.
'코딩테스트 풀이 > JAVA' 카테고리의 다른 글
[LeetCode/Easy] 2367. Number of Arithmetic Triplets (0) | 2023.05.02 |
---|---|
[LeetCode/Easy] 2363. Merge Similar Items (0) | 2023.05.02 |
[LeetCode/Easy] 2325. Decode the Message (0) | 2023.05.02 |
[프로그래머스/Lv.0] 이차원 배열 대각선 순회하기 (0) | 2023.05.01 |
[프로그래머스/Lv.0] 정사각형으로 만들기 (0) | 2023.05.01 |