[Programmers] #120904 - 숫자 찾기 [Java][C++][Python]
문제 링크 1. 아이디어 정수 num과 k가 주어질 때, num을 이루는 숫자 중 k가 있는지 찾는 문제다. num을 문자열로 바꾼 뒤 k에 해당하는 문자가 처음 등장하는 인덱스를 찾으면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(D)...
문제 링크 1. 아이디어 정수 num과 k가 주어질 때, num을 이루는 숫자 중 k가 있는지 찾는 문제다. num을 문자열로 바꾼 뒤 k에 해당하는 문자가 처음 등장하는 인덱스를 찾으면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(D)...
문제 링크 1. 아이디어 두 배열이 얼마나 유사한지 확인하기 위해 두 배열에 공통으로 포함된 원소의 개수를 구해야 한다. 각 배열의 원소들이 문자열이므로 해시셋을 활용해 한쪽 배열의 모든 원소를 해시셋에 넣은 후, 다른 쪽 배열의 각 원소들이 해시셋에 포함됐는지 확인하는 방식으로 해결할 수 있다. 2. 복잡도 ...
문제 링크 1. 아이디어 수식은 공백으로 구분된 숫자 연산자 숫자 연산자 ... 형태다. 첫 숫자를 초깃값으로 두고 이어지는 연산자 숫자 쌍을 왼쪽부터 차례로 반영하면 된다. - 뒤의 항을 음수로 보면 부호를 반영한 모든 항의 합으로도 계산할 수 있다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 배열을 한 번 순회하면서 지금까지 본 최댓값과 그 인덱스를 함께 갱신했다. 모든 원소가 서로 다르므로 최댓값을 가지는 위치는 하나로 정해진다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(1)$ ...
문제 링크 1. 아이디어 공백을 포함한 모든 문자가 가로 2cm를 차지하므로, 편지지의 최소 가로길이는 문자열 길이에 2를 곱한 값이다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ 3. 코드...
문제 링크 1. 아이디어 각 수 앞에 + 또는 -를 붙이는 모든 조합을 시도해, 마지막 수까지 부호를 정했을 때 합이 target과 같은 경우의 수를 센다. 수의 개수가 최대 20개라 조합은 $2^{20}$ 정도이고 완전 탐색으로 충분하다. 매 상태에서 두 조합이 이어지는 상태 트리로 간주하면 BFS나 DFS를 통해 해결할 수 있다. BFS...
문제 링크 1. 아이디어 연결 관계로 이어진 컴퓨터의 덩어리, 즉 그래프의 연결 요소 개수를 세는 문제다. computers는 대칭 인접 행렬이고 대각 원소는 항상 1이다. 그래프의 연결 요소의 개수를 세는 간단한 방법인 BFS·DFS는 방문하지 않은 정점을 하나 잡아 그 정점에서 도달 가능한 모든 정점을 표시하는 탐색을 한 번 돌리고 네트...
문제 링크 1. 아이디어 slicer의 세 값을 각각 a, b, c로 두고 n 값에 따라 분기 처리하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N$ = num_list의 길이) ...
문제 링크 1. 아이디어 num_list를 앞에서부터 순회하며 처음 만나는 음수의 인덱스를 반환하고, 끝까지 음수가 없으면 -1을 반환하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(1)$ ($...
문제 링크 1. 아이디어 intervals의 각 구간 [s, e]에 대해 arr의 s번째부터 e번째까지 원소를 순서대로 모아 이어 붙이면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(N)$ ($N...