1. 해쉬 테이블 키(Key)에 데이터(Value)를 매핑할 수 있는 데이터 구조 해쉬 함수를 통해, 배열에 키에 대한 데이터를 저장할 수 있는 주소(인덱스 번호)를 계산 Key를 통해 바로 데이터가 저장되어 있는 주소를 알 수 있으므로, 저장 밑 탐색 속도가 획기적으로 빨라짐 미리 해쉬 함수가 생성할 수 있는 주소(인덱스 번호)에 대한 공간을 배열로 할당한 후, 키에 따른 데이터 저장 및 탐색 지웑 2. 알아둘 용어 해쉬 함수(Hash Function) : 임의의 데이터를 고정된 길이의 값으로 리턴해주는 함수 해쉬(Hash), 해쉬 값(Hash Value), 또는 해쉬 주소(Hash Address) : 해싱 함수를 통해 리턴된 고정된 길이의 값 해쉬 테이블(Hash Table) : 키 값의 연산에 의해..
1. 알고리즘 복잡도 계산이 필요한 이유 하나의 문제를 푸는 알고리즘은 다양할 수 있음 정수의 절대값 구하기 1, -1 >> 1 방법1 : 정수값을 제곱한 값에 다시 루트를 씌우기 방법2 : 정수가 음수인지 확인해서, 음수일 때만 -1을 곱하기 다양한 알고리즘 중 어느 알고리즘이 더 좋은지를 분석하기 위해, 복잡도를 정의하고 계산함 2. 알고리즘 복잡도 계산 항목 시간 복잡도 : 알고리즘 실행 속도 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 가장 중요한 시간 복잡도를 꼭 이해하고 계산할 수 있어야 함. 알고리즘 시간 복잡도의 주요 요소 반복문이 지배합니다. - 자동차로 서울에서 부산을 가기 위해, 다음과 같이 항목을 나누었을 때, 가장 총 시간에 영향을 많이 미칠 것 같은 요소는? 자동차로 서울..
1. 마법의 엘리베이터 👉 소스코드 public int solution(int storey) { int answer = 0; int nextCnt = 0; int flag = 0; if(storey = 5 && tmp > 50) { nextCnt = 1; } } if(storey % 10 5) { answer += 10 - (storey % 10); flag = 1; } storey /= 10; // 5일때 다음 자리수 값 if(nextCnt == 1) { storey += 1; nextCnt = 0; } // 5보다 큰수일때 그 다음 자리수 if(flag == 1) { storey += 1; flag = 0; } }..
1. 잘라서 배열로 저장하기 👉 소스코드 public int[] solution(String s) { int[] answer = new int[s.length()]; answer[0] = -1; for (int i = 0; i < s.length(); i++) { int tmp = s.lastIndexOf(s.substring(i, i + 1), i - 1); if (tmp != -1) { answer[i] = i - tmp; } else { answer[i] = tmp; } } return answer; } - 풀지 못한 문제,, 2. 명예의 전당 👉 소스코드 public int[] solution(int k, int[] score) { int[] answer = new int[score.length]..
✏️ HTTP 메소드 중 GET 방식과 POST 방식의 차이 1. GET은 요청을 전송할 때 필요한 데이터를 Body에 담지 않고, 쿼리스트링으로 전송합니다. URL의 끝에 ?와 함께 이름과 값으로 쌍을 이루는 파라미터를 쿼리스트링이라고 합니다. 파라미터가 단수가 아닌 복수일 경우에는 앰퍼샌드(&)를 사용하여 각 파리미터를 연결합니다. 쿼리스트링을 사용하게 되면 URL에 조회 조건을 표시하기 때문에 특정페이지를 링크하거나 북마크할 수 있습니다. 쿼리스트링을 포함한 URL의 예시는 아래와 같습니다. 여기서 파라미터명은 nam1, name2이고 각각의 파라미터는 value1, value2라는 갑승로 서버에 요청을 보내게 됩니다. www.sample.com/resource?name1=value1&name2=v..
안녕하세요 원하는 회사에 입사하기 위해서는 알고리즘 공부가 필요하다는 걸 알면서도 마냥 두렵기만 해서 차일피일 미루기만 했었는데요 이제는 피할 수만은 없다는 생각이 들어서 공부를 시작하게 되었습니다. 공부를 하게 된 계기는 어느 개발자분의 블로그에 알고리즘 공부는 필수다라는 주제로 포스팅 되어 있는 글을 보면서 알고리즘 공부를 실천하게 되었습니다. 해당 글에서는 알고리즘 공부의 필요성, 효과적인 공부방법 등 여러가지 주제의 글들이 있었는데 읽는 내내 제 자신에게 따끔한 채찍과, 공부를 하게 해줄 용기를 북돋아 주었습니다. 공부를 시작하기에 앞서 공부를 하게 만드는 룰을 정해놓고 시작하자라고 생각했는데 더도 말고 덜도 말고 딱 하루에 한 문제만 풀자고 스스로 분량을 정했고 풀이한 문제와 답은 꼭 블로그에 ..