전체 글
[프로그래머스] 삼각 달팽이 / 파이썬 / Python / 월간 코드 챌린지 시즌1
💡solutions ) 💬 피라미드 배열 만들고, 삼각형을 기준으로 if문 처리 (각 선분에 해당하는 3가지 조건으로 처리) 💬 해당 문제를 풀면서 list index out of range가 많이 나서 고생을 좀 했다..!!!!😂 💬 인덱스 에러가 나지 않게 while문 안에서 break 조건을 적절히 넣어줘야 한다 ->j, k 범위를 체크하거나 arr[j][k] 값이 있는지 확인하는 조건을 넣었음 💬 최근 본 코테에서 2차원 배열 리스트를 활용하는 문제가 나왔는데 상당히 어렵게 느껴졌다. 해당 유형의 문제를 더 연습해야겠다! 🎫code ) def solution(n): arr = [[0] * _ for _ in range(1, n + 1)] num = 1 j = 0 k = 0 for i in rang..
MySQL로 DB 구축한 카카오뱅크의 혁신, '울드라맨'
💬 예전 카카오뱅크는 MySQL이라는 오픈소스 DB를 은행의 주요 시스템에 적용해서 IT업계에서 화제가 된 바 있다. 대부분의 시중은행은 ‘오라클 DB’라는 제품을 이용해서 데이터, 즉 고객의 돈을 관리하는데 이는 안정성과 성능 면에서 이미 검증된 제품이기 때문이다. 그러나 한 가지 단점은 많은 돈이 필요하다는 것이다. 비싸긴 하지만 안정성을 위해 시중은행들이 오라클 DB를 사용하는 것과 달리 카카오뱅크는 오픈소스인 MySQL 중심으로 데이터베이스를 설계했다. 가장 큰 이유는 비용절감일 것이지만, 고가의 오라클 DB에 들어가는 비용을 절감하면 고객에게 더 많은 이익을 제공하거나 다른 혁신에 투자할 수도 있다. 그렇다면 카카오뱅크는 어떻게 MySQL을 통해 고객 데이터를 지킬 수 있는 것일까? 🔖금융 데이..
[프로그래머스] n진수 게임 / 파이썬 / Python / 2018 KAKAO BLIND RECRUITMENT
💡solutions ) 💬 진수 변환을 잘 몰랐는데 이번 문제 풀면서 정확히 알게 됐다. 해당 진수로 숫자를 나누며 나머지를 누적하는 방식. 💬 진수 변환 함수는 재귀로도 풀 수 있는데 이번에는 while 반복문을 이용해서 구했고, 이때 0인 경우를 빼먹지 않기 위해 if조건문을 넣어야 한다. 💬 solution 함수에서 두 가지 for문 ① 첫 번째는 t*m까지의 숫자를 진수 변환 해주는 것. ② 두 번째는 튜브가 말해야 하는 숫자만 찾는 것. 🎫code ) def change(num, n): numbers = '0123456789ABCDEF' r = '' if num == 0: return '0' while num > 0: r = numbers[num % n] + r num = num // n ret..
[프로그래머스] SQL LEVEL 1 전체 /Oracle /오라클 /SELECT
📍 프로그래머스 SQL 레벨1 총 10문제 (SELECT) 📍 ⚪ 최댓값 구하기 SELECT MAX(DATETIME) FROM ANIMAL_INS ⚪ 모든 레코드 조회하기 SELECT * FROM ANIMAL_INS ORDER BY ANIMAL_ID ⚪ 역순 정렬하기 SELECT NAME, DATETIME FROM ANIMAL_INS ORDER BY ANIMAL_ID DESC ⚪ 아픈 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION = 'Sick' ORDER BY ANIMAL_ID ⚪ 어린 동물 찾기 SELECT ANIMAL_ID, NAME FROM ANIMAL_INS WHERE INTAKE_CONDITION != 'Aged' OR..
[프로그래머스] 영어 끝말잇기/ 파이썬 / Python/ Summer/Winter Coding(~2018)/ 카카오 코테
💡solutions ) 💬 로직은 크게 끝말잇기가 유효한지 for문을 돌며 확인 -> 불가능한 경우는 총 2가지(이미 말한 단어를 다시 말한 경우와 앞단어의 마지막과 뒷단어의 첫 번째가 같지 않은 경우) * 번호와 차례를 구할 때는 아랫처럼 구하고자 하는 정확한 값이 나오도록 덧셈 처리 💬 번호를 나타내는 idx는 i를 n으로 나눈 나머지에 +1를 해주기 💬 차례를 나타내는 cnt는 n의 배수 번째인지 아닌 지에 따라 분기 처리해야 함 🎫code ) def solution(n, words): tmp = [words[0]] # 첫 번째 단어는 먼저 넣고 시작 for i in range(1, len(words)): # 두 번째 단어부터 시작해서 끝말잇기 유효한지 확인 if words[i - 1][-1] !=..
[프로그래머스] 캐시/ 파이썬/ Python/ deque/ LRU / 2018 KAKAO BLIND RECRUITMENT /카카오 코테
💡solutions ) LRU(Least Recently Used) 알고리즘 : 가장 최근에 사용되지 않은 것이라는 의미로, 오랫동안 사용하지 않았던 데이터는 앞으로도 사용할 확률이 적다는 것이다. 이는 한정된 캐시 사이즈가 꽉 차고 새로운 캐시를 넣으려고 할 때, 기존 캐시 중 최근까지 가장 사용되지 않은 데이터를 제거하는 알고리즘이다. 💬 첫 번째 if문 -> cacheSize가 0인 경우 참조하는 값이 없으므로 cities 모든 요소가 cache miss로 실행시간이 5이다. 💬 대소문자 구분하지 않으니 모두 소문자로 처리 -> lower() 메소드 💬 for문 -> 각 city가 buffer에 있는 지 확인하는데 ① 없는 경우 buffer가 cacheSize만큼 꽉 차 있는 지 확인한다. - ca..
카카오페이, 마이데이터 기반 자산관리 서비스 '버킷리스트'
📚마이데이터 기반의 자산관리 서비스 ‘버킷리스트’ 마이데이터 제도가 시행된 이후 카카오페이의 본격적인 행보가 시작됐다. 카카오페이는 22일 카카오페이증권과 함께 마이데이터 기반의 자산관리 서비스 ‘버킷리스트’를 선보인다고 밝혔다. 버킷리스트는 이용자들이 원하는 목표를 스스로 설정하고, 이를 이루기 위한 자산관리를 돕는 서비스다. 카카오페이는 버킷리스트를 출시하며 자회사인 카카오페이증권과 손을 잡았다. 카카오페이증권은 계좌를 계설할 수 있기 때문이다. 버킷리스트 계좌가 카카오페이증권 계좌에 생성된다. 카카오페이는 계열사들과 함께 손을 잡고 금융과 비금융을 아우르는 데이터 생태계를 구축할 방침이다. 카카오 생태계 안에는 무수히 많은 정보가 있다. 예를 들어 카카오 계열사의 데이터를 종합하면 이용자의 금융활동..
[프로그래머스] 뉴스 클러스터링/ 파이썬/ Python/ 2018 KAKAO BLIND RECRUITMENT/ 카카오 코테
💡solutions ) 💬 로직은 크게 2가지. 문자열에서 영문자 조합으로 된 유효한 글자쌍 찾기 / Counter로 합집합, 교집합 연산 후 길이 구하기 💬 대소문자 차이는 무시하므로 모두 대문자로 바꿨다 -> upper()메소드 사용 💬 각 문자열을 2개씩 끊어 다중집합으로 만드는데 영문자로 된 조합만 lst에 append해준다 -> isalpha()로 문자인지 확인 💬 모두 공집합인 경우에는 65536 바로 리턴 💬 collections 모듈의 Counter 클래스 사용. 처음에 set을 떠올렸는데 set의 경우 중복을 제거하기 때문에 제대로된 결과값을 얻기 어려워서 Counter을 사용했음. 💬 Counter을 &합집합 연산(inter), |교집합 연산(union)을 하고 길이를 구해 결과값 리턴..