[Programmers] #120833 - 배열 자르기 [Java][C++][Python]
문제 링크 1. 아이디어 정수 배열 numbers에서 인덱스 num1부터 num2까지의 구간을 그대로 잘라 반환하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ = ...
문제 링크 1. 아이디어 정수 배열 numbers에서 인덱스 num1부터 num2까지의 구간을 그대로 잘라 반환하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ = ...
문제 링크 1. 아이디어 정수 리스트 num_list가 주어질 때, 마지막 원소와 그 이전 원소를 비교해 마지막 원소가 더 크면 두 값의 차를, 그렇지 않으면 마지막 원소의 2배를 리스트 끝에 추가해 반환하면 되는 문제다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 정수 n과 문자열 control이 주어질 때, control을 앞에서부터 순회하며 문자에 따라 n을 조작하면 되는 문제다. w는 1 증가, s는 1 감소, d는 10 증가, a는 10 감소를 의미하므로, 각 문자를 확인하며 그에 대응하는 값을 더하거나 빼면 된다. 2. 복잡도 접근 ...
문제 링크 1. 아이디어 정수 배열 numLog에서 인접한 두 값의 차이를 확인해서 어떤 조작이 있었는지 역으로 알아내는 문제다. 이전 값과 현재 값의 차이가 +1이면 w, -1이면 s, +10이면 d, -10이면 a로 판단해서 순서대로 이어 붙이면 조작 문자열이 복원된다. 2. 복잡도 접근 시간 ...
문제 링크 1. 아이디어 각 쿼리는 두 인덱스로 이루어져 있고, 두 인덱스에 해당하는 arr의 원소를 서로 바꾸면 된다. 쿼리 개수만큼 반복하면서 두 위치를 스왑하면 끝나는 간단한 구현 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(Q)...
문제 링크 1. 아이디어 각 쿼리 [s, e, k]에 대해 s부터 e까지의 구간을 순회하면서 k보다 크면서 가장 작은 값을 찾는다. 답을 매우 큰 값(INF)으로 초기화해두고 구간을 순회하며 k보다 크면서 지금까지 찾은 값보다 작은 원소를 만날 때마다 갱신하고, 순회가 끝난 뒤에도 값이 INF 그대로면 조건을 만족하는 원소가 없다는 뜻이므로 ...
문제 링크 1. 아이디어 각 쿼리 [s, e, k]에 대해 s부터 e까지의 인덱스 i를 순회하면서 i가 k의 배수인 경우에만 arr[i]에 1을 더하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(N \times Q)$ $O(...
문제 링크 1. 아이디어 l부터 r까지의 정수를 전부 하나씩 확인하며 각 자리가 전부 0 또는 5인지 판별하면 된다. 0도 5도 아닌 자리를 하나라도 만나면 그 수는 제외하고, 모든 자리가 조건을 만족하는 수만 오름차순으로 모았다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 start_num부터 end_num까지 정수를 하나씩 순서대로 담아 배열로 반환하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ = end_...
문제 링크 1. 아이디어 반복문을 활용해 n이 1보다 큰 동안 짝수면 $2$로 나누고 홀수면 $3n + 1$로 바꾸는 과정을 반복하면서, 매 단계의 n 값을 결과 배열에 순서대로 기록하면 된다. 반복문을 탈출하는 순간은 n이 1인 경우 하나로 배열의 마지막에 1만 추가로 삽입해서 반환하면 된다. 2. 복잡도 ...