반응형
[ch7/P7] L1. 두 수의 합
import java.util.Arrays;
import java.util.HashMap;
import java.util.Map;
public class P7 {
public static void main(String args[]) {
int[] nums = {2, 7, 11, 15}; //int[] 배열
int target = 9; //합으로 나와야 하는 수
System.out.println(Arrays.toString(twoSum(nums, target)));
}
//brute force, hashmap을 이용하기
public static int[] twoSum(int[] nums, int target) {
Map<Integer, Integer> map = new HashMap<>();
for(int i = 0; i < nums.length; i++) {
int sub = target - nums[i];
if (map.containsKey(sub)) {
return new int[]{map.get(sub), i};
}
//해시맵에 저장
map.put(nums[i], i);
}
return new int[0];
}
}
[ch7/P10] L561. 배열 파티션 I
import java.util.Arrays;
public class P10 {
public static void main(String[] args) {
int[] nums1 = {1, 4, 3, 2};
int result1 = arrayPairSum(nums1);
System.out.println(result1);
int[] nums2 = {6, 2, 6, 5, 1, 2};
int result2 = arrayPairSum(nums2);
System.out.println(result2);
}
public static int arrayPairSum(int[] nums) {
Arrays.sort(nums);
int sum = 0;
for(int i = 0; i <nums.length; i += 2) {
sum += nums[i];
}
return sum;
}
}
[ch7/P12] L121. 주식을 사고팔기 가장 좋은 시점
import java.util.Arrays;
public class P12 {
public static void main(String args[]) {
int[] prices1 = {7,1,5,3,6,4};
int profit1 = maxProfit(prices1);
System.out.println(profit1);
}
public static int maxProfit(int[] prices) {
if (prices == null || prices.length <= 1) {
return 0;
}
int max = 0;
int min = Integer.MAX_VALUE;
for(int price : prices) {
if (price < min) {
min = price;
}
else {
max = Math.max(max, price - min);
}
}
return max;
}
}
반응형
'Portpolio > java_algo_interview' 카테고리의 다른 글
자바 알고리즘 인터뷰 09. 스택, 큐 (0) | 2023.12.31 |
---|---|
자바 알고리즘 인터뷰 08. 연결 리스트 (0) | 2023.12.31 |
자바 알고리즘 인터뷰 06. 문자열 처리 (0) | 2023.12.31 |
자바 알고리즘 인터뷰 05. 빅오 표기법 (2) | 2023.12.26 |
자바 알고리즘 인터뷰 04. 자료형 (1) | 2023.12.26 |
댓글