본문 바로가기

전체 글23

프로그래머스 42577번 전화번호 목록 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42577 풀이 이 문제는 "해시" 카테고리에 있지 않았다면 못 풀었을 것 같은 문제였다고 생각한다. 성능 테스트를 통과하려면, HashMap의 탐색 시간 복잡도가 O(1) 인 것을 최대한 이용해야 한다. 그럼 HashMap의 key, value를 무엇으로 정해야 할까? => 전화번호의 substring을 key, 전화번호의 길이를 value로 잡고 모두 저장하면, 전화번호가 다른 전화번호의 접두어인지 O(1)로 확인할 수 있다. 1. 모든 전화번호에 대해 를 HashMap에 저장한다. substring이 동일한데, 전화번호 길이가 더 길다면, 값을 갱신한다. => O(n * 20) 2. phon.. 2022. 7. 18.
프로그래머스 42576번 완주하지 못한 선수 문제 https://school.programmers.co.kr/learn/courses/30/lessons/42576 풀이 1. participant의 내용은 completion의 내용을 포함하며, 1개 더 많다. participant를 HashMap에 담고, completion으로 소거하는 방법을 쓰게 되면, completion을 모두 소거 후, 찾는 과정이 생기게 되므로, completion을 HashMap에 담는다. (O(n-1)) 2. participant를 순회하며, completionCount HashMap에서 탐색 및 소거시킨다. 2-1. 만약 count값이 이미 0이거나, null이면 완주하지 못한 선수이므로, 반환하면 된다. import java.util.HashMap; class So.. 2022. 7. 16.
프로그래머스 1845번 폰켓몬 문제 https://school.programmers.co.kr/learn/courses/30/lessons/1845 풀이 1. nums배열의 값의 종류를 뽑아야 하므로, 1번 순회하여 HashMap에 담는다. 시간복잡도 O(n) 2. 종류 수가 nums.length / 2보다 크면 nums.length / 2를 반환. 아니면 종류 수 그대로 반환한다. import java.util.HashMap; class Solution { public int solution(int[] nums) { int answer = 0; HashMap monsterCount = new HashMap(); for(int monsterKind: nums) { if(monsterCount.get(monsterKind) != nul.. 2022. 7. 16.
Oracle Cloud Tenancy Inactive 이슈 서론 필자는 현재 무료 서버 호스팅 서비스를 찾아 굶주린 하이에나처럼 돌아다니던 와중, Oracle Cloud 서비스를 발견하게 되었고, Free Tier 로 가입하여 가지고 논 뒤, 몇 주 뒤에 알 수 없는 현상을 마주치게 되었습니다. 바로 인스턴스 생성 등 아무런 행위도 하지 못하게 된 것입니다. 본론 1시간 정도 OCI(Oracle Cloud Infrastructure) 메뉴들을 뒤져보다, 결국 구글에 검색해보니, 아래 링크에 저와 동일한 문제를 겪고 계신 분들이 많이 있었습니다. https://community.oracle.com/tech/apps-infra/discussion/4496564/my-tenancy-is-inactive-but-my-account-is-still-active 해당 커뮤.. 2022. 5. 15.