알고리즘 코드카타
with reporter as (
select reports_to, count(employee_id) as reports_count, avg(age) as average_age
from Employees
group by reports_to
)
select a.employee_id, a.name, b.reports_count, round(b.average_age, 0) as average_age
from Employees a
left join reporter b
on a.employee_id = b.reports_to
where b.reports_count >= 1
order by a.employee_id asc
;
WITH Employees AS (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY employee_id ORDER BY primary_flag) AS rn
FROM Employee
)
SELECT employee_id, department_id
FROM Employees
WHERE rn = 1;
class Solution {
public int[] solution(String s) {
int[] answer = {0,0};
String sb = s;
while (sb.length() > 1) {
answer[1] += counter(sb);
String binaryString = Integer.toString(nonzero(sb), 2);
answer[0]++;
sb = binaryString;
}
return answer;
}
public int nonzero(String sen){
return sen.replace("0","").length();
}
public int counter(String sen){
return sen.replace("1","").length();
}
}
import java.util.ArrayList;
import java.util.List;
class Solution {
public int solution(int n) {
int fibonacci = fibonacci(n);
return fibonacci;
}
public int fibonacci(int n){
List<Integer> fibonaccies = new ArrayList<>();
fibonaccies.add(0);
fibonaccies.add(1);
for(int i = 2; i <= n; i++){
fibonaccies.add((fibonaccies.get(i-1)+ fibonaccies.get(i-2))%1234567);
}
return fibonaccies.get(n);
}
}
모듈러 산술(나머지 연산)의 분배법칙 성질 활용하기!!
덧셈: (A + B) % M = ((A % M) + (B % M)) % M
곱셈: (A B) % M = ((A % M) (B % M)) % M
뺄셈: (A - B) % M = ((A % M) - (B % M) + M) % M (음수가 나오는 것을 방지하기 위해 M을 더해줌)