[Programmers] #181918 - 배열 만들기 4 [Java][C++][Python]
문제 링크 1. 아이디어 주어진 과정을 반복해서 단조 스택을 직접 만들어가는 문제로 변수 i를 만들어 i가 arr의 길이보다 작은 동안 시뮬레이션을 돌리면 된다. 루프 내에서는 stk가 빈 배열인 경우 또는 마지막 원소가 arr[i]보다 작은 경우에는 arr[i]를 stk에 추가하고, 아닌 경우에는 stk의 마지막 원소를 제거하면 된다. ...
문제 링크 1. 아이디어 주어진 과정을 반복해서 단조 스택을 직접 만들어가는 문제로 변수 i를 만들어 i가 arr의 길이보다 작은 동안 시뮬레이션을 돌리면 된다. 루프 내에서는 stk가 빈 배열인 경우 또는 마지막 원소가 arr[i]보다 작은 경우에는 arr[i]를 stk에 추가하고, 아닌 경우에는 stk의 마지막 원소를 제거하면 된다. ...
문제 링크 1. 아이디어 정수 n이 주어질 때, n 이하의 짝수를 모두 더한 값을 구하는 문제다. 가장 직관적인 방법은 2부터 n까지 2씩 증가시키면서 값을 그대로 누적하는 것이다. $O(N)$의 시간복잡도가 소요되지만 n이 크지 않아서 충분한 방법이다. 두 번째 방법은 $O(1)$의 시간복잡도로 구하는 방법으로, 짝수의 합은 등차수열의 ...
문제 링크 1. 아이디어 양꼬치 n인분은 1인분당 12,000원, 음료수는 1개당 2,000원이고 10인분마다 음료수 1개가 무료로 제공된다. 따라서 총 금액은 $n \times 12{,}000 + (k - \lfloor n / 10 \rfloor) \times 2{,}000$으로, 마신 음료수 k개 중 서비스로 받은 $\lfloor n / ...
문제 링크 1. 아이디어 angle을 크기 순서대로 비교해 0도 초과 90도 미만이면 예각(1), 90도면 직각(2), 90도 초과 180도 미만이면 둔각(3), 180도면 평각(4)을 반환하면 되는 문제다. 조건을 작은 값부터 순서대로 검사하면 마지막에 남는 경우가 자연스럽게 평각(180도)이 되므로 별도의 분기 없이 처리할 수 있다. ...
문제 링크 1. 아이디어 my_string에서 letter와 일치하는 문자를 전부 제거한 뒤 반환하면 되는 문제다. letter는 항상 길이가 1인 문자열로 주어지므로, 문자열에서 해당 문자를 지우는 표준적인 방법을 그대로 적용하면 된다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 문자열 my_string의 각 문자를 순회하며 해당 문자를 n번 반복한 문자열을 이어 붙이면, 각 문자가 n번씩 반복된 결과 문자열을 만들 수 있다. 2. 복잡도 접근 시간 공간 풀이 $O(N \times M)$ ...
문제 링크 1. 아이디어 num_list를 순회하며 각 원소를 2로 나눈 나머지로 홀수 개수를 세고, 전체 길이에서 이를 빼 짝수 개수를 구한 뒤 [짝수 개수, 홀수 개수] 순서로 반환하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(N...
문제 링크 1. 아이디어 1부터 n까지 순회하면서 i번째 줄에 별을 i개씩 출력하면 높이와 너비가 n인 직각삼각형을 출력할 수 있다. 2. 복잡도 접근 시간 공간 풀이 $O(N^2)$ $O(1)$ ($N$ = ...
문제 링크 1. 아이디어 문자열 my_string의 문자 순서를 거꾸로 뒤집어 반환하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ = my_string의 길이. C...
문제 링크 1. 아이디어 정수 num이 n의 배수인지 판별하는 문제로 num을 n으로 나눈 나머지가 0이면 배수인 것을 활용하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ 3. 코드 ...