알고리즘 6

[알고리즘] 자료구조 해시테이블 | 체이닝 vs 오픈 어드레싱 차이

해시테이블(HashTable)이란? 키(Key)와 쌍(Pair)을 저장하는 자료구조입니다.빠른 검색, 삽입, 삭제가 가능하며, 일반적으로 평균 시간 복잡도가 O(1)입니다.내부적으로 해시함수를 사용하여 배열의 인덱스를 계산하고, 해당 위치에 데이터를 저장합니다.  주요 개념 1. 해시 함수입력된 키를 특정 크기의 배열 인덱스로 변환하는 함수좋은 해시함수는 충돌을 최소화해야 함2. 충돌서로 다른 키가 같은 해시 값을 가질 때 발생하는 문제충돌 해결 방법으로 체이닝(Chaining) 또는 오픈 어드레싱(Open Addressing) 기법 사용    # 1. 체이닝class HashNode: def __init__(self, key=None, value=None): self.key = key..

알고리즘 2025.03.13

[알고리즘] 실무에 바로 쓰이는 알고리즘 by Python | 파이참 자동완성 끄기

https://www.inflearn.com/chats/1384039/%ED%95%9C%EC%A4%84-%EC%9E%90%EB%8F%99%EC%99%84%EC%84%B1-%ED%95%B4%EC%A0%9C-%ED%8C%8C%EC%9D%B4%EC%B0%B8-%EC%84%B8%ED%8C%85-%EA%B3%B5%EC%9C%A0%ED%95%A9%EB%8B%88%EB%8B%A4?srsltid=AfmBOor3ZbxouO4i_wMan0iJLgAvxrp_j9XLCU5G7RYt5jqEMoHPMO-w 한줄 자동완성 해제 파이참 세팅 공유합니다. - 인프런 | 고민있어요안녕하세요 고민글은 아니고 혹시나 해서 같이 강의 들으시는 분들하고 공유하고 싶어서글 올립니다.(아마 많이 알고 있으시겠지만 혹시나 싶어서 공유합니다. 혹시 ..

알고리즘 2025.02.04

[알고리즘] 프로그래머스 lv.1 문자열 내림차순으로 배치하기 자바

문제 설명 문자열 s에 나타나는 문자를 큰것부터 작은 순으로 정렬해 새로운 문자열을 리턴하는 함수, solution을 완성해주세요.s는 영문 대소문자로만 구성되어 있으며, 대문자는 소문자보다 작은 것으로 간주합니다.   제한사항str은 길이 1 이상인 문자열입니다.   입출력 예sreturn"Zbcdefg""gfedcbZ"    코드import java.util.Arrays;class Solution { public String solution(String s) { char[] arr = s.toCharArray(); Arrays.sort(arr); StringBuffer sb = new StringBuffer(new String(arr)); ..

알고리즘 2024.10.04

[알고리즘] 약수 구하기 | 프로그래머스 약수의 개수와 덧셈

문제         코드 class Solution { public int solution(int left, int right) { int answer = 0; int count = 0; for (int i = left; i       설명  1. 변수 선언정답을 위한 변수 선언을 위해 int 타입의 answer 정의 후 0으로 초기화약수의 개수를 담기 위한 변수 선언을 위해 int 타입의 count 정의 후 0으로 초기화2. for문을 통해 시작을 left, 마지막을 right로 설정 3. 약수 구하기 알고리즘// ex) i가 10일때10 % 1 == 010 % 2 == 010 % 3 == 110 % 4 == 210 % 5 == 010 % 6 =..

알고리즘 2024.09.27

[알고리즘] 프로그래머스 핸드폰 번호 가리기 | 자바 문자열 길이 구하기 | 자바 문자열 접근

문제 설명  프로그래머스 모바일은 개인정보 보호를 위해 고지서를 보낼 때 고객들의 전화번호의 일부를 가립니다.전화번호가 문자열 phone_number로 주어졌을 때, 전화번호의 뒷 4자리를 제외한 나머지 숫자를 전부 *으로 가린 문자열을 리턴하는 함수, solution을 완성해주세요.   제한 조건 phone_number는 길이 4 이상, 20 이하인 문자열이다.  입출력 예phone_numberreturn"01012345678""*******5678""021234567""*****4567"         class Solution { public String solution(String phone_number) { String answer = ""; int length =..

알고리즘 2024.09.12