no image
[Java] 11. 모듈과 패키지
모듈 여러 패키지와 이미지 등의 자원을 모아 놓은 컨테이너 JDK 9부터 자바 API의 모든 클래스들(자바 실행 환경)을 패키지 기반에서 모듈들로 완전히 재구성함 응용프로그램 역시 여러 개의 모듈로 분할하여 작성 가능 클래스의 패키지화 → 패키지의 모듈화 자바 API를 여러 모듈로 분할하여 응용프로그램의 실행에 적합한 모듈들로만 실행 환경 구축 메모리 등의 자원이 열악한 작은 소형 기기에 꼭 필요한 모듈로만 구성하여 실행하기 위함 💡 모듈화는 복잡한 개념이므로 메모리 환경이 충분한 경우에는 굳이 모듈화를 하지 않아도 됨 모듈 파일에는 자바 API 의 패키지와 클래스들이 들어 있음 jmod 명령을 이용하여 모듈 파일에 들어 있는 패키지를 풀어 낼 수 있음 java.util.Scanner : 경로명으로 구성..
2021.05.26
no image
[Java] 10. 인터페이스
인터페이스(interface) : 호환성을 나타내는 정해진 규격 클래스가 구현해야 할 메소드들이 선언되는 추상형 interface 키워드로 선언 인터페이스의 목적 스펙을 주어 클래스들이 그 기능을 서로 다르게 구현할 수 있도록 하는 클래스의 규격 선언 클래스의 다형성을 실현하는 도구 인터페이스 구성 요소 상수public 만 허용 추상 메소드public abstract 생략 가능 default 메소드 public 만 허용 인터페이스에 코드가 작성된 메소드 인터페이스를 구현하는 클래스에 자동 상속 private 메소드 인터페이스에 코드가 작성된 메소드 인터페이스 내에 있는 다른 메소드에 의해서만 호출 가능 static 메소드 public, privat 모두 지정 가능, 생략 시 public 인터페이스의 특성..
2021.05.26
no image
[알고리즘 일기] 23. 최대 곱 구하기
최대 곱 구하기 여럿이서 카드 게임을 하고 있는데, 각 플레이어는 3장의 카드를 들고 있습니다. 위의 경우 첫 번째 플레이어는 1, 2, 3을 들고 있고, 두 번째 플레이어는 4, 6, 1을 들고 있고, 세 번째 플레이어는 8, 2, 4를 들고 있습니다. 주의사항 * 함수 max_product는 한 사람당 카드를 하나씩 뽑아서 모두 곱했을 때 가능한 최대 곱을 리턴합니다. ❧ 테스트 셋 def max_product(card_lists): #Code #Test test_cards1 = [[1, 6, 5], [4, 2, 3]] print(max_product(test_cards1)) test_cards2 = [[9, 7, 8], [9, 2, 3], [9, 8, 1], [2, 8, 3], [1, 3, 6], ..
2021.05.23
no image
[알고리즘 일기] 22. 최소 동전으로 거슬러주기
최소 동전으로 거슬러 주기 최소 동전으로 돈을 거슬러 주는 함수를 Greedy Algorithm으로 구현하시오. 주의사항 * 함수 min_coin_count는 거슬러 줘야 하는 총액 value와 동전 리스트 coin_list를 파라미터로 받고, 거슬러 주기 위해 필요한 최소 동전 개수를 리턴합니다. * 동전의 조합은 항상 500원, 100원, 50원, 10원이라고 가정합니다. ❧ 테스트 셋 def min_coin_count(value, coin_list): #Code #Test default_coin_list = [100, 500, 10, 50] print(min_coin_count(1440, default_coin_list)) print(min_coin_count(1700, default_coin_li..
2021.05.22
no image
[알고리즘 일기] 21. 최대 수익(Tabulation)
합병 정렬 구현하기 솔희는 학원 쉬는 시간에 친구들을 상대로 새꼼달꼼 장사를 합니다. 그러다 문득, 갖고 있는 새꼼달꼼으로 벌어들일 수 있는 최대 수익이 궁금해졌습니다. 가능한 최대 수익을 리턴시켜 주는 함수 max_profit을 Tabulation 방식으로 작성해 보세요. max_profit은 파라미터 두 개를 받습니다. - price_list: 개수별 가격이 정리되어 있는 리스트 - count: 판매할 새꼼달꼼 개수 ❧ 테스트 셋 def max_profit(price_list, count): # Code # Test print(max_profit([0, 200, 600, 900, 1200, 2000], 5)) print(max_profit([0, 300, 600, 700, 1100, 1400], 8)..
2021.05.22
no image
[알고리즘 일기] 20. 최대 수익(Memoization)
최대 수익(Memoization) 솔희는 학원 쉬는 시간에 친구들을 상대로 새꼼달꼼 장사를 합니다. 그러다 문득, 갖고 있는 새꼼달꼼으로 벌어들일 수 있는 최대 수익이 궁금해졌습니다. 가능한 최대 수익을 리턴시켜 주는 함수 max_profit_memo를 Memoization 방식으로 작성해 보세요. max_profit_memo는 파라미터 세 개를 받습니다. - price_list: 개수별 가격이 정리되어 있는 리스트 - count: 판매할 새꼼달꼼 개수 - cache: 개수별 최대 수익이 저장되어 있는 사전 ❧ 테스트 셋 def max_profit_memo(price_list, count, cache): # Code def max_profit(price_list, count): max_profit_cac..
2021.05.20
no image
[알고리즘 일기] 19. 피보나치 수열(최적화)
피보나치 수열(최적화) 공간 복잡도 O(1)로 fib_optimized 함수를 작성하세요. ❧ 테스트 셋 def fib_optimized(n): # Code # Test print(fib_optimized(16)) print(fib_optimized(53)) print(fib_optimized(213)) ❧ 출력 예시 987 53316291173 146178119651438213260386312206974243796773058 ❧ 정답 def fib_optimized(n): current = 1 previous = 0 # update for i in range(1, n): current, previous = current + previous, current return current # Test prin..
2021.05.19
no image
[알고리즘 일기] 18. 피보나치 수열(Tabulation)
합병 정렬 구현하기 n번째 피보나치 수를 찾아주는 함수 fib_tab을 tabulation 방식으로 구현해 보세요. ❧ 테스트 셋 def fib_tab(n): # Code # Test print(fib_tab(10)) print(fib_tab(56)) print(fib_tab(132)) ❧ 출력 예시 55 225851433717 1725375039079340637797070384 ❧ 정답 def fib_tab(n): fib_table = [0, 1, 1] for i in range(3, n + 1): fib_table.append(fib_table[i - 1] + fib_table[i - 2]) return fib_table[n] print(fib_tab(10)) print(fib_tab(56)) pri..
2021.05.18
no image
[알고리즘 일기] 17. 피보나치 수열(Memoization)
피보나치 수열(Memoization) n번째 피보나치 수를 찾아주는 함수 fib_memo를 memoization 방식으로 구현해 보세요. ❧ 테스트 셋 def fib_memo(n, cache): # Code def fib(n): # n번째 피보나치 수를 담는 사전 fib_cache = {} return fib_memo(n, fib_cache) # Test print(fib(10)) print(fib(50)) print(fib(100)) ❧ 출력 예시 55 12586269025 354224848179261915075 ❧ 정답 def fib_memo(n, cache): if n < 3: return 1 if n in cache: return cache[n] cache[n] = fib_memo(n - 1,ca..
2021.05.17