본문 바로가기

algorithm64

더하기, 곱하기 시간복잡도 계산 더하기, 곱하기 시간복잡도 계산 더하기 더하기 시간복잡도 O(n) 2개의 이진수를 그냥 더해주면 되기에 for 문 한 번 돌리면 됨. 곱하기 시간복잡도 O(n제곱) 2개의 수를 곱한다 가정하면, 이진수로 변환하고 일렬로 나열한 후, 밑에자리에서부터 곱하기 시작. 밑에 자리에서부터 곱하게되면 n만큼의 이진수가 최대 n-1 만큼 나오게 되며, 그렇기에 시간복잡도 O(n제곱) 물론 알고리즘 마다 시간복잡도가 다름. 자바에서 곱하기 알고리즘을 어떤걸 사용하는가? Reference https://peng-hi.tistory.com/2 https://stackoverflow.com/questions/32998207/what-is-asymptotic-complexity-of-integers-multiplication.. 2020. 12. 10.
하노이탑 문제 풀기 하노이탑 문제 풀기 import lombok.extern.slf4j.Slf4j; @Slf4j public class Hanoi { public static void main(String[] args) { int count = hanoi(3, 1, 2, 3, 0); log.info("{}", count); count = hanoi(4, 1, 2, 3, 0); log.info("{}", count); } /** * 하노이탑 원리를 이해해야 함. * 1. n-1 를 두번째 기둥으로 옮기고. * 2. 첫번째 기둥에서 마지막 원판을 세번째 기둥으로 옮긴다. * 3. 두번째 기둥에 있는 n-1 원판을 세번째 기둥으로 옮긴다. * * 위 내용을 보면 n 번쨰 기둥을 옮기는건 n-1 번째 기둥을 옮기는 것을 풀어야 풀.. 2020. 11. 5.
Hackerrank The Grid Search 풀이 The Grid Search 문제 : https://www.hackerrank.com/challenges/the-grid-search/problem 풀이 및 시간복잡도 주석에 풀이 및 시간 복잡도 써놓음. public class TheGridSearch { private static final Scanner scanner = new Scanner(System.in); public static void main(String[] args) { Scanner in = new Scanner(System.in); int t = in.nextInt(); for (int i = 0 ; i < t ; i++) { /** grid row */ int R = in.nextInt(); /** grid column */ in.. 2020. 10. 7.
leetcode Employees Earning More Than Their Managers 풀이 self 조인 leetcode 문제 https://leetcode.com/problems/employees-earning-more-than-their-managers/ 풀이 주의할 점은 a.managerId = b.id 임. a.managerId 가 3,4 = b 테이블과 비교했을 때, 1,2번이 조인 결과로 나옴. select a.name as Employee from Employee a inner join Employee b on a.managerId = b.Id where a.salary > b.salary ; 2020. 9. 30.