분류 전체보기

    [프로그래머스] 구명보트

    [프로그래머스] 구명보트

    풀이방법 보트의 개수를 최소로 만들기 위해서는 가능하다면 1개의 보트에 2명씩 태워야한다! 즉, 몸무게가 많이 나가는 사람을 태울 경우에 몸무게가 적은 사람들 중 같이 태울 수 있는 사람을 찾으면 유리할 것 같다고 생각하여 몸무게가 담긴 배열을 정렬하고 투 포인터를 사용했다 :) 1. 몸무게가 담긴 배열 오름차순 정렬 2. 아직 보트에 타지 않은 사람들 중 몸무게가 가장 적은 사람을 가리키는 포인터 left, 몸무게가 가장 많은 사람을 가리키는 포인터 right 선언 3. left가 가르키는 몸무게와 right가 가르키는 몸무게의 합이 limt 이하라면 그 두명을 태우고 left는 다음으로 몸무게가 적게 나가는 사람, right는 다음으로 몸무게가 많이 나가는 사람을 가르키도록 움직인다. 4. left..

    [리트코드] 4. Median of Two Sorted Arrays

    [리트코드] 4. Median of Two Sorted Arrays

    풀이방법_1 1. nums1길이 + nums2길이 만큼의 크기를 가지는 배열 nums 생성 2. System.arraycopy() 을 사용하여 두 개의 배열을 nums에 복사해서 넣음 3. Arrays.sort() 사용하여 nums 오름차순 정렬 4. nums의 길이가 홀 수 일때 -> 배열의 중앙값 return / 짝 수 일때 -> 배열의 중앙값 2개의 평균을 return 코드_1 import java.util.Arrays; class Solution { public double findMedianSortedArrays(int[] nums1, int[] nums2) { int[] nums = new int[nums1.length + nums2.length]; System.arraycopy(nums1, ..

    [리트코드] 34. Find First and Last Position of Element in Sorted Array

    [리트코드] 34. Find First and Last Position of Element in Sorted Array

    문제 간단 설명 정수형 배열에서 특정 숫자의 시작 위치와 마지막 위치를 찾아서 배열에 담아 반환한다. 단! 시간복잡도 log n 안에 해결할 것! 풀이 방법 1. 배열을 돌며 target을 찾는다. 2. target과 같은 값을 처음 만난다면 시작 위치와 마지막 위치를 해당 위치로 변경한다. 3. 처음 만난게 아니라면 마지막 위치만 해당 위치로 변경한다. 4. target보다 값이 크다면 반복문 끝까지 가지 않고 빠져나간다. 코드 class Solution { public int[] searchRange(int[] nums, int target) { int[] result = {-1, -1}; for(int idx = 0; idx < nums.length; idx++) { if(nums[idx] == t..

    [프로그래머스] 평균 구하기

    [프로그래머스] 평균 구하기

    풀이방법 1. 반복문을 통해 배열에 있는 모든 값들의 합을 구한다. 2. 합을 배열의 길이로 나눈값을 반환한다. 코드 class Solution { public double solution(int[] arr) { double sum = 0; for(int num: arr) { sum += num; } return sum/arr.length; } } https://programmers.co.kr/learn/courses/30/lessons/12944 코딩테스트 연습 - 평균 구하기 정수를 담고 있는 배열 arr의 평균값을 return하는 함수, solution을 완성해보세요. 제한사항 arr은 길이 1 이상, 100 이하인 배열입니다. arr의 원소는 -10,000 이상 10,000 이하인 정수입니다. 입..