일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- java
- 리트코드
- 자바
- Algorithm
- Python
- db
- network
- CS
- frontend
- Data Structure
- vscode
- TypeScript
- VIM
- 동적 계획법
- Database
- LeetCode
- DFS
- Redux
- BFS
- 그레이들
- 프로그래머스
- 알고리즘
- DP
- react
- git
- 백준
- 안드로이드
- Graph
- 다이나믹 프로그래밍
- Javascript
- Today
- Total
목록코딩 문제/Programmers (6)
늘 겸손하게

문제해설 한 번호가 다른 번호의 접두어인 경우가 있는지 확인하는 문제입니다. 단, 주어진 번호가 1개 이상 1,000,000개 이하로 주어지므로 효율적인 자료구조와 알고리즘을 사용해야합니다. 문제풀이 각 전화번호 모두 접두어가 될 가능성이 있으므로 전화번호를 key, true 값을 value로 하는 해시맵을 준비합니다. 각 전화번호를 참조하면서 전화번호의 부분수열이 해시맵의 key로 등록되어 있는지 확인합니다. 이미 등록이 되어있다면 접두어가 있다는뜻이므로 false를 반환하고 없다면 참조하는 전화번호를 해시맵에 등록합니다. 모든 전화번호를 탐색해도 접두어가 발견되지 않는다면 true를 반환합니다. 주의할점은, 길이가 짧은 전화번호부터 먼저 해시맵에 등록을 해야 접두어가 있는 모든 경우를 찾을 수 있습니..

안녕하세요 besforyou입니다. 2022 카카오 블라인드 채용 > K진수에서 소수 개수 구하기 문제 풀이입니다. 문제 풀이 1. 양의 정수 n을 k진수로 변환합니다. 2. 변환한 k진수 문자열을 0을 기준으로 split 합니다. 3. 나누어진 문자열중 소수인 것의 개수를 셉니다. 1. 양의 정수 n을 k진수로 변환 n.toString(k) 메소드를 사용하여 n에 담긴 값을 k진수로 변환 가능합니다. 1 var changedNum = n.toString(k); cs 2. 변환한 k진수를 0을 기준으로 split 합니다. split() 메서드를 사용하여 변환된 k진수 문자열을 0을 기준으로 분리합니다. 1 var tokens = changedNum.split('0'); cs 3. 나누어진 문자열 중 소수..

안녕하세요 besforyou입니다. 2020 카카오 블라인드 채용 > 문자열 압축 문제 풀이입니다. 문제 풀이 조건들이 다양하고, 복잡하고 마지막 원소나 첫 번째 원소 등의 edge case를 다루기가 까다로운 문제였습니다. 일반적인 배열을 이용하여 풀 수도 있겠지만 저는 stack 자료구조를 이용하였습니다. 1. 문자열 단위 정하기 문자열 자르는 단위는 1부터 N/2까지 하면 됩니다. N/2 이상의 길이로 문자열을 잘라봤자 길이가 줄어들지 않으므로 N/2 이상의 단위로는 문자열을 압축할 필요 없습니다. 1 2 3 4 5 6 7 8 9 10 11 public int solution(String s) { int len = s.length(); int min = 1001; for (int i = 1 ; i ..

안녕하세요 besforyou 입니다 2021 KAKAO BLIND RECRUITMENT > 신규 아이디 추천 문제 해설입니다 문제 풀이 주어진 단계별로 문자열을 변형하면 되는 문제입니다. 1 단계 String의 메소드인 toLowerCase()로 문자열 속 대문자들을 모두 소문자로 바꿉니다. 1 2 // Step 1 answer = new_id.toLowerCase(); cs 2 단계 순차탐색으로 모든 문자를 읽어들여서 알파벳 소문자, 숫자, 빼기, 밑줄, 마침표를 제외한 모든 문자를 제거합니다. 문자가 숫자인지는 Character.isDigit() 메소드로 알 수 있습니다. 1 2 3 4 5 6 7 8 // Step 2 for (int i = 0 ; i = 'a' && c