분류 전체보기
[프로그래머스] 위클리 챌린지(7주차) - "입실 퇴실" (Java)
[프로그래머스] 위클리 챌린지(7주차) - "입실 퇴실" (Java)
2021.09.18https://programmers.co.kr/learn/courses/30/lessons/86048 코딩테스트 연습 - 7주차 사회적 거리두기를 위해 회의실에 출입할 때 명부에 이름을 적어야 합니다. 입실과 퇴실이 동시에 이뤄지는 경우는 없으며, 입실 시각과 퇴실 시각은 따로 기록하지 않습니다. 오늘 회의실에는 programmers.co.kr 난이도 : Level 2 이 문제는 적절한 자료구조를 이용하고, 문제를 정확히 이해하는 것이 핵심이라고 생각합니다. 개인적인 생각이지만 이러한 문제는 문제에서 의도하는 풀이가 있는 것 같습니다. 다음과 같은 로직으로 문제를 설계했습니다. 1. 자료구조를 이용하여 각 사람마다 만난 사람의 수를 저장한다. 2. 나간 순서를 기준으로 반복문을 탐색한다. 3. 자료구조를..
[프로그래머스] 위클리 챌린지(6주차) - "복서 정렬하기" (Java)
[프로그래머스] 위클리 챌린지(6주차) - "복서 정렬하기" (Java)
2021.09.17https://programmers.co.kr/learn/courses/30/lessons/85002 코딩테스트 연습 - 6주차_복서 정렬하기 복서 선수들의 몸무게 weights와, 복서 선수들의 전적을 나타내는 head2head가 매개변수로 주어집니다. 복서 선수들의 번호를 다음과 같은 순서로 정렬한 후 return 하도록 solution 함수를 완성해주세요 programmers.co.kr 난이도 : Level 1 오름차순, 내림차순과 같은 단순한 정렬이 아닌 직접 정렬을 커스텀하여 해결하는 유형의 문제입니다. 몇 가지 예외처리에 조금 애를 먹었지만 높은 난이도를 요구하는 문제는 아닙니다. 저는 아래와 같은 로직으로 문제를 해결하였습니다. 1. 선수의 정보를 저장할 객체를 생성한다. 2. 문제의 조건에..
[프로그래머스] 위클리 챌린지(5주차) - "모음 사전" (Java)
[프로그래머스] 위클리 챌린지(5주차) - "모음 사전" (Java)
2021.09.15https://programmers.co.kr/learn/courses/30/lessons/84512 코딩테스트 연습 - 5주차_모음사전 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니 programmers.co.kr 난이도 : Level 2 규칙을 찾는 것이 관건인 문제입니다. 아래 순서대로 로직을 짰습니다. 1. 규칙을 구한다. 2. 점화식을 구한다. 1. 규칙을 구한다. 주어진 문제의 규칙대로 문자열을 순서대로 작성하면 아래와 같은 순서가 됩니다. A(1) - AA(2) - AAA(3) - AAAA(4) - AAAAA..
[React] context API로 전역 상태 관리하기
[React] context API로 전역 상태 관리하기
2021.09.15Context API Context API의 Context는 컴포넌트의 단계마다 Props를 일일이 전달하지 않고, 원하는 컴포넌트 트리에 데이터를 제공할 수 있는 State Management 툴입니다. React는 데이터를 상위에서 하위 컴포넌트로 Props를 전달하는 구조입니다. 그래서 구현된 컴포넌트 트리에 컴포넌트 개수가 많아질 경우에는 데이터를 전달하는 과정이 복잡해질 수 있습니다. Context API를 이용하면 각 컴포넌트마다 데이터를 파라미터로 받거나 하위 컴포넌트에 데이터를 전달하는 과정이 생략됩니다. 즉, 이러한 관리를 전역적으로 상태를 관리한다고 말할 수 있습니다. Context API에는 Provider, createContext, Consumer의 개념이 있습니다. 이들의 개념만..
[프로그래머스] 위클리 챌린지(4주차) - "직업군 추천하기" (Java)
[프로그래머스] 위클리 챌린지(4주차) - "직업군 추천하기" (Java)
2021.09.13https://programmers.co.kr/learn/courses/30/lessons/84325 코딩테스트 연습 - 4주차_직업군 추천하기 개발자가 사용하는 언어와 언어 선호도를 입력하면 그에 맞는 직업군을 추천해주는 알고리즘을 개발하려고 합니다. 아래 표는 5개 직업군 별로 많이 사용하는 5개 언어에 직업군 언어 점수를 부 programmers.co.kr 난이도 : Level 1 각 직업군에 맞는 점수를 계산하고 사전순 정렬에 고민할 순 있지만, 크게 난이도가 높은 문제는 아니라고 생각합니다. 저는 다음과 같은 로직으로 문제를 해결하고자 했습니다. 1. Map 자료구조를 활용하여 언어별 점수 저장. 2. Comparator를 이용하여 사전순 정렬. 3. table 배열을 돌면서 직업군 별 총점 계..
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "자물쇠와 열쇠" (Java)
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "자물쇠와 열쇠" (Java)
2021.09.10https://programmers.co.kr/learn/courses/30/lessons/60059 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 난이도 : Level 3 순수 구현력을 시험하는 문제라고 생각합니다. 문제를 확실하게 이해하는 것이 중요해보입니다. 저 같은 경우는 lock과 key가 돌기가 만나는 경우 (둘 다 1인경우)를 처리를 안해줘서 꽤나 시간을 썼습니다. 저는 다음과 같은 로직으로 문제를 풀고자 했습니다. 1. key 배열로 Lock 배열을 전탐색해야한다. 2. key 배열과 Lock 배열을 포함할 수 있는 새로운 배열을 만들어야한다..
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "문자열 압축" (Java)
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "문자열 압축" (Java)
2021.09.08https://programmers.co.kr/learn/courses/30/lessons/60057?language=javascript 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 난이도 : Level 2 제가 생각한 로직은 아래와 같습니다. 1. 절반까지만 탐색한다. (절반이 넘어가면 반복되는 문자열이 없기 때문.) 2. 문자열에서 범위를 정하여 각 범위만큼 비교 문자열을 생성한다 (String slice) 3. s 문자열에서 비교 문자열 뒤로 target 문자열을 비교하며 임시 문자열을 만들어..
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "괄호 변환" (Java)
[프로그래머스] 2020 KAKAO BLIND RECRUITMENT - "괄호 변환" (Java)
2021.09.07https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 난이도 : Level 2 문제에서 구현 조건이 주어졌기에, 적절한 자료구조를 사용한 구현 능력을 요구하는 문제인 것 같습니다. 카카오는 주로 수학적인 알고리즘 능력을 요하는 것이 아닌, 자료구조를 활용한 구현 능력을 더 중요하게 보는 것 같습니다. 다음과 같은 로직으로 문제를 해결하였습니다. 1. 올바른 괄호 문자열인지 판별하는 함수를 구현할 것. 2. 문제 조건..
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "광고 삽입" (Java)
[프로그래머스] 2021 KAKAO BLIND RECRUITMENT - "광고 삽입" (Java)
2021.09.07https://programmers.co.kr/learn/courses/30/lessons/72414 코딩테스트 연습 - 광고 삽입 시간을 나타내는 HH, H1, H2의 범위는 00~99, 분을 나타내는 MM, M1, M2의 범위는 00~59, 초를 나타내는 SS, S1, S2의 범위는 00~59까지 사용됩니다. 잘못된 시각은 입력으로 주어지지 않습니다. (예: 04:60:24, 11 programmers.co.kr 난이도 : Level 3 슬라이딩 윈도우 알고리즘을 활용하여 문제를 해결하였습니다. 이 문제는 의도하는 로직을 떠올리는 것이 관건이라고 생각합니다. String으로 주어진 시간 정보를 초 단위로 환산하는 것은 간단할 수 있지만 이들을 활용하여 탐색을 하는 과정은 고민이 필요한 문제라고 생각합..