https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.kr import java.util.*;class Solution { public int solution(int k, int[] tangerine) { int answer = 0; int n = tangerine.length; Arrays.sort(tangerine); Stack stack = new Stack(); for(int i = 0; i = 0..
https://www.acmicpc.net/problem/2018 2018번: 수들의 합 5 어떠한 자연수 N은, 몇 개의 연속된 자연수의 합으로 나타낼 수 있다. 당신은 어떤 자연수 N(1 ≤ N ≤ 10,000,000)에 대해서, 이 N을 몇 개의 연속된 자연수의 합으로 나타내는 가지수를 알고 싶어한 www.acmicpc.net ※ 문제 설명 - 이 문제는 투 포인터 알고리즘 개념을 활용하여 풀 수 있는 문제이다. - 연속되는 수들의 합으로 입력한 수를 만들 수 있는 가지 수를 구하는 문제이다. ※ 투 포인터 ? - 배열이나 리스트에서 '두 개의 포인터'를 사용하여 '특정 조건을 만족하는 부분 구간'을 효율적으로 탐색하는 알고리즘 - 투 포인터의 시간복잡도는 빅오 표기법을 사용하면 O(n)이며, 선형..
자료구조 파트의 두 번째 파트인 구간 합이다. 구간 합을 처음 들었을 때는 그냥 어떤 범위 안 값들의 합을 반복문 이용해서 구하는 거 얘기하는건가..? 라는 생각이 들었다. 근데 공부하면서 구간 합 공식이라는 것을 처음 알게되었다. ㅋㅋ... ※구간 합 ▶ 합 배열을 이용하여 시간 복잡도를 더 줄이기 위해 사용하는 특수한 목적의 알고리즘이다. ▶ 예를 들어 어떠한 배열의 특정 범위에 있는 값들의 합을 구하고 싶을 때, 이 값을 빨리 구할 수 있는 알고리즘이다. ▶ 이 알고리즘은 코딩 테스트에서 사용 빈도가 높다. ★ 합 배열 → 구간 합 알고리즘을 활용하려면 먼저 합 배열을 구해야 한다. → 합 배열은 다음과 같이 배열의 값을 하나씩 더해서 각 인덱스까지의 합을 저장한 배열이다. → 합 배열을 만드는 공..
오늘은 자료구조 파트를 들어가면서 첫 파트인 배열과 리스트를 간단하게 알아보았다. ※ 배열과 리스트 ▶ 배열과 리스트는 여러가지 자료구조 중 가장 흔히 쓰이는 자료구조이다. ▶ 두 자료구조의 특징을 정확하게 이해하고 문제가 요구하는 조건에 따라 적절하게 선택해 사용하는 것이 중요하다. ※ 배열 ▶ 연속 공간에 값이 채워져 있는 형태의 자료구조이다. ▶배열의 값은 인덱스를 통해 참조할 수 있으며, 선언한 자료형의 값만 저장할 수 있다. ★ 배열의 특징 ① 인덱스를 사용하여 값에 바로 접근할 수 있다. ② 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다. ③ 배열의 크기는 선언할 때 지정 가능하고, 한번 선언하면 크기를 변경할 수 없다. ④ 구조가 간단하므로 코테에서 많이 사용한다. ※ 리스..