분류 전체보기 240

99클럽 코테 스터디 5일차 TIL + 프로그래머스/2/42626. 더 맵게

문제 설명매운 것을 좋아하는 Leo는 모든 음식의 스코빌 지수를 K 이상으로 만들고 싶습니다. 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 Leo는 스코빌 지수가 가장 낮은 두 개의 음식을 아래와 같이 특별한 방법으로 섞어 새로운 음식을 만듭니다.섞은 음식의 스코빌 지수 = 가장 맵지 않은 음식의 스코빌 지수 + (두 번째로 맵지 않은 음식의 스코빌 지수 * 2)Leo는 모든 음식의 스코빌 지수가 K 이상이 될 때까지 반복하여 섞습니다.Leo가 가진 음식의 스코빌 지수를 담은 배열 scoville과 원하는 스코빌 지수 K가 주어질 때, 모든 음식의 스코빌 지수를 K 이상으로 만들기 위해 섞어야 하는 최소 횟수를 return 하도록 solution 함수를 작성해주세요.제한 사항scoville의 길이..

99클럽 코테 스터디 4일차 TIL + 프로그래머스/2/12909. 올바른 괄호

문제 설명괄호가 바르게 짝지어졌다는 것은 '(' 문자로 열렸으면 반드시 짝지어서 ')' 문자로 닫혀야 한다는 뜻입니다. 예를 들어"()()" 또는 "(())()" 는 올바른 괄호입니다.")()(" 또는 "(()(" 는 올바르지 않은 괄호입니다.'(' 또는 ')' 로만 이루어진 문자열 s가 주어졌을 때, 문자열 s가 올바른 괄호이면 true를 return 하고, 올바르지 않은 괄호이면 false를 return 하는 solution 함수를 완성해 주세요.제한사항문자열 s의 길이 : 100,000 이하의 자연수문자열 s는 '(' 또는 ')' 로만 이루어져 있습니다.입출력 예sanswer"()()"true"(())()"true")()("false"(()("false입출력 예 설명입출력 예 #1,2,3,4문제의 ..

99클럽 코테 스터디 3일차 TIL + 프로그래머스/2/42586. 기능개발

git문제 설명프로그래머스 팀에서는 기능 개선 작업을 수행 중입니다. 각 기능은 진도가 100%일 때 서비스에 반영할 수 있습니다.또, 각 기능의 개발속도는 모두 다르기 때문에 뒤에 있는 기능이 앞에 있는 기능보다 먼저 개발될 수 있고, 이때 뒤에 있는 기능은 앞에 있는 기능이 배포될 때 함께 배포됩니다.먼저 배포되어야 하는 순서대로 작업의 진도가 적힌 정수 배열 progresses와 각 작업의 개발 속도가 적힌 정수 배열 speeds가 주어질 때 각 배포마다 몇 개의 기능이 배포되는지를 return 하도록 solution 함수를 완성하세요.제한 사항작업의 개수(progresses, speeds배열의 길이)는 100개 이하입니다.작업 진도는 100 미만의 자연수입니다.작업 속도는 100 이하의 자연수입니..

99클럽 코테 스터디 2일차 TIL + 프로그래머스/2/42578. 의상

문제 설명코니는 매일 다른 옷을 조합하여 입는것을 좋아합니다.예를 들어 코니가 가진 옷이 아래와 같고, 오늘 코니가 동그란 안경, 긴 코트, 파란색 티셔츠를 입었다면 다음날은 청바지를 추가로 입거나 동그란 안경 대신 검정 선글라스를 착용하거나 해야합니다.종류이름얼굴동그란 안경, 검정 선글라스상의파란색 티셔츠하의청바지겉옷긴 코트코니는 각 종류별로 최대 1가지 의상만 착용할 수 있습니다. 예를 들어 위 예시의 경우 동그란 안경과 검정 선글라스를 동시에 착용할 수는 없습니다.착용한 의상의 일부가 겹치더라도, 다른 의상이 겹치지 않거나, 혹은 의상을 추가로 더 착용한 경우에는 서로 다른 방법으로 옷을 착용한 것으로 계산합니다.코니는 하루에 최소 한 개의 의상은 입습니다.코니가 가진 의상들이 담긴 2차원 배열 c..

99클럽 코테 스터디 1일차 TIL + 프로그래머스/2/42577. 전화번호 목록/

# [level 2] 전화번호 목록 - 42577[문제 링크](https://school.programmers.co.kr/learn/courses/30/lessons/42577) 문제 설명전화번호부에 적힌 전화번호 중, 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하려 합니다.전화번호가 다음과 같을 경우, 구조대 전화번호는 영석이의 전화번호의 접두사입니다.구조대 : 119박준영 : 97 674 223지영석 : 11 9552 4421전화번호부에 적힌 전화번호를 담은 배열 phone_book 이 solution 함수의 매개변수로 주어질 때, 어떤 번호가 다른 번호의 접두어인 경우가 있으면 false를 그렇지 않으면 true를 return 하도록 solution 함수를 작성해주세요.제한 사항phone_b..

Hash Table 정리

Hash Table 탄생 배경 Direct Access Table 인 배열인덱스 방식으로, key-value쌍을 가져올 때 시간효율은 O(1)이므로 빠르다. 하지만 사용하지 않는 index에 대한 공간낭비가 상존함 1. 해시 함수의 조건 (1) 의의 특정 값을 원하는 범위의 자연수로 바꿔주는 함수 (2) 조건 1) 한 해시테이블의 해시 함수는 결정론적이어야 한다 같은 key 는 같은 결과가 나와야함 2) 결과 해시값이 치우치지 않고 고르게 나온다 각 리턴 값이 나올 확률이 비슷해야한다 3) 빠르게 계산 할 수있어야한다. 해시테이블은 연산할 때 마다 해시함수 사용함. 본 함수가 비효율적이면 해시테이블도 비효율적임 2. 해시함수 만들기 (1) 나누기 방법 자연수 key를 해시테이블의 크기로 나눈 나머지를 리..

알고리즘 3줄 정리 [DP : Memoization, ]

Dynamic Programming - Memoization 정리 핵심개념 피보나치 수열의 동적 프로그래밍과 메모이제이션 방식의 핵심은 중복 계산을 방지하기 위해 캐시를 사용하여 이미 계산된 값을 저장하고 재사용함으로써, 재귀 호출의 효율성을 높이고 시간 복잡도를 지수적인 O(2^n) 에서 선형적인 O(n)으로 줄이는 데에 있습니다. 기저 사례를 적절히 처리하여 재귀 호출의 종료 조건을 제공하며, 이를 통해 계산 속도를 크게 향상시킵니다.

알고리즘 3줄 정리 [합병정렬, 퀵정렬]

Divid and Conquer 의 형제 합병정렬 정리 핵심개념: 리스트를 반으로 나누고, 각 부분을 재귀적으로 정렬한 다음, 두 부분을 합병합니다. 시간복잡도: 최선, 평균, 최악 모두 O(nlogn) → + : 일관된 시간복잡도 공간복잡도: O(n) (추가 배열을 사용하기 때문에) → - : 추가 메모리 필요 퀵정렬 정리 핵심개념: 피벗을 선택하여 이보다 작은 요소와 큰 요소를 분할한 후(파티션), 각 부분을 재귀적으로 정렬합니다. 시간복잡도: 평균 O(nlogn), 최악 O(n2) (피벗 선택에 따라 달라짐) → + 평균적으로 빠름, 최악 크게 증가 공간복잡도: 평균 O(logn) (재귀의 깊이), 최악의 경우 O(n) (피벗 선택이 최악일 때) → + 추가 메모리 적게 소모 이름이 퀵정렬인 이유 ..

이직 회고 : 신입공채 최종면접 불합격 하고 나서

I. 들어가며 금번 HR솔루션을 필두로 하는 기업공채 최종면접에서 불합격하였다. HR관련 나의 관심과 지식은 어느정도 합격을 기대했다. 하지만 결과는 그렇지 않았다. 합격 후 내 모습에 기대가 없었다면 상실감도 없었겠지만, 기대가 있었기에 제법 충격은 상당했다. 또한 본 채용과정을 밟아가며 기회비용을 생각해도 마음은 편치않다. 금번 불합격 발표는 마치 예전에 오랜기간 준비했던 시험을 불합격했던 날의 기억을 생생하게 느끼게 해주었다. 차후에 한번 더 이러한 시간과 비용을 사용한다면, 아깝지 않은 결과로 만들기 위해서 회고한다. II. 면접 전형 회고 1. Liked : 좋았던 점은 무엇인가? 6월부터 공부하며 획득한 자격증은 지원서 작성에 요긴하게 쓰였다. 정보처리기사와 HRM전문가 두개는 지원서를 작성할..

[FiveLinesOfCode] 6장: 유사한 코드 융합하기

6장 데이터 보호 의문점 학습목표 ‘getter와 setter를 사용하지 말것’ 으로 캡슐화 강제하기란? ‘getter와 setter 제거하기’ 로 getter제거하기란? ‘공통 접사를 사용하지말것’을 위한 ‘데이터 캡슐화’ 사용이란? ‘순서 강제화’로 불변속성제거란? 키워드 6.1 getter없이 캡슐화 하기 정의 Boolean 이 아닌 필드에 getter나 setter 사용하지 말것 즉 직접할당하거나 반환하는 메서드를 의미함 getter 존재시 캡슐화를 해제하고 불변속성을 전역적으로 만듬 객체 반환 후 반환받은 곳은 객체를 다른곳어 더 전달이 가능하고 이것은 제어 불가능 setter 존재시 setter수정시 시그니처 유지할 수있는 또 다른 간접적 레이어 도입할 수있음 실제로는 setter를 통한 새로..