[Programmers] #181936 - 공배수 [Java][C++][Python]
문제 링크 1. 아이디어 정수 number가 n과 m의 배수인지 판별하는 문제로 number를 n과 m으로 각각 나눈 나머지가 모두 0이면 배수인 것을 활용하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ ...
문제 링크 1. 아이디어 정수 number가 n과 m의 배수인지 판별하는 문제로 number를 n과 m으로 각각 나눈 나머지가 모두 0이면 배수인 것을 활용하면 된다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ ...
문제 링크 1. 아이디어 n이 홀수면 n 이하의 홀수를 모두 더하고, 짝수면 n 이하의 짝수의 제곱을 모두 더한 값을 반환하면 되는 문제다. 가장 직관적인 방법은 홀짝을 나눈 뒤 2씩 건너뛰며 순회해서 합을 누적하는 것이다. 이 합은 닫힌 형태의 공식으로 $O(1)$의 시간복잡도로 구할 수도 있다. n이 홀수라면 1부터 n까지의 홀수는 $1...
문제 링크 1. 아이디어 두 수 n, m에 대해 문자열 ineq와 eq의 조합에 따라 아래와 같은 조건을 비교만 하면 된다. ineq = ">", eq = "=" → n >= m ineq = "<", eq = "=" → n <= m ineq = ">", eq = "!" → n > m ineq ...
문제 링크 1. 아이디어 정수 a, b와 boolean flag가 주어질 때, flag가 true면 a + b를, false면 a - b를 반환하면 되는 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ $O(1)$ ...
문제 링크 1. 아이디어 문자열 code를 순회하며, 현재 문자가 "1"이면 mode를 전환하고 다음 문자로 넘어간다. "1"이 아니면 mode가 1이면서 인덱스가 홀수일 때, 또는 mode가 0이면서 인덱스가 짝수일 때 ret에 문자를 추가한다. 따라서 mode와 인덱스가 모두 홀수거나 모두 짝수일 때만 문자를 추가하면 된다. 순회를 마쳤...
문제 링크 1. 아이디어 첫째항 a, 공차 d인 등차수열의 $(i + 1)$번째 항은 $a + d \times i$($i$는 0-indexed)로 바로 구할 수 있다. included 배열을 순회하면서 included[i]가 true인 위치의 항만 이 식으로 계산해 더하면 된다. 2. 복잡도 접근 ...
문제 링크 1. 아이디어 세 주사위 눈 a, b, c가 모두 같은지, 그중 두 개만 같은지, 모두 다른지를 조건문으로 구분해서 각 경우에 맞는 점수 공식을 적용하면 된다. 모두 같으면 $(a + b + c) \times (a^2 + b^2 + c^2) \times (a^3 + b^3 + c^3)$, 두 개만 같으면 $(a + b + c) \t...
문제 링크 1. 아이디어 num_list를 한 번 순회하면서 모든 원소의 곱과 합을 각각 계산한다. 원소가 최대 9, 길이가 최대 10이라 곱은 최대 $9^{10}$까지 커질 수 있어 int 범위를 넘어설 수 있으므로 큰 정수 타입으로 계산해야 한다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 num_list를 순회하며 홀수는 odd에, 짝수는 even에 자릿수를 이어 붙였다. odd = odd * 10 + x 형태로 누적하면 별도의 문자열 변환 없이 홀수들을 순서대로 이어 붙인 수를 만들 수 있고, even도 같은 방식으로 처리했다. 순회가 끝나면 두 값을 더해서 반환하면 된다. 2. 복잡도 ...
문제 링크 1. 아이디어 num_list의 원소의 순서를 거꾸로 뒤집은 배열을 반환하면 되는 간단한 문제다. 2. 복잡도 접근 시간 공간 풀이 $O(N)$ $O(1)$ ($N$ = num_list의 길이) ...