[Programmers] #181931 - 등차수열의 특정한 항만 더하기 [Java][C++][Python]
문제 링크 1. 아이디어 첫째항 a, 공차 d인 등차수열의 $(i + 1)$번째 항은 $a + d \times i$($i$는 0-indexed)로 바로 구할 수 있다. included 배열을 순회하면서 included[i]가 true인 위치의 항만 이 식으로 계산해 더하면 된다. 2. 복잡도 접근 ...
문제 링크 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의 길이) ...
문제 링크 1. 아이디어 나이는 태어난 연도에 1살이고 매년 1월 1일마다 1살씩 증가한다. 기준 연도가 2022년이므로 출생 연도는 $2022 - \text{age} + 1$이 되고, 이를 정리하면 $2023 - \text{age}$가 된다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 아메리카노 한 잔 가격 5,500원으로 money를 나눈 몫이 살 수 있는 잔 수, 나머지가 남는 돈이다. 정수 나눗셈과 나머지 연산 한 번씩으로 구할 수 있다. 2. 복잡도 접근 시간 공간 풀이 $O(1)$ ...
문제 링크 1. 아이디어 구매한 옷의 가격 price가 50만 원, 30만 원, 10만 원 구간 중 어디에 속하는지에 따라 할인율(20%, 10%, 5%)이 정해지고, 어느 구간에도 속하지 않으면 할인이 없다. 구간이 겹치므로 큰 금액부터 순서대로 조건문으로 확인하여 price에 해당하는 할인율을 적용하면 해결할 수 있다. 2. 복잡도 ...
문제 링크 1. 아이디어 정수 배열 numbers가 주어질 때, 원소들의 평균값을 반환하면 되는 문제다. 원소들의 합을 배열의 길이로 나누면 되는데, 정수 나눗셈이면 소수점 이하가 버려지므로 합을 실수로 누적한 뒤 나눠주면 된다. 2. 복잡도 접근 시간 공간 ...
문제 링크 1. 아이디어 피자 한 판을 slice조각으로 자를 때, n명이 모두 한 조각 이상 먹기 위해 필요한 최소 피자 판수를 구하는 문제다. n을 slice로 나눈 몫을 올림하면 되므로, (n + slice - 1) / slice처럼 나눌 값에 (나누는 수 - 1)을 더해 정수 나눗셈으로 올림을 구현하면 된다. 2. 복잡도 ...