목록알고리즘 (129)
이숭간 공부기록
https://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 문제유형 : 2차원배열, 구현 문제풀이 : 이 문제의 핵심은 기존 lock배열을 expand해서 확장된 배열을 만드는 것이다. 확장된 배열의 정중앙에 기존 lock이 위치한다. 확장된 배열 위에서 key를 이동시키는것이다. 얼만큼 확장시키나? new_n = (3*n)-2 만큼 확장시킨다 (key는 항상 lock크기 이하인데, key가 가장 클때, 즉 lock의 크기와 같을때 좌측상단에 key를 위치시켰을때 우측..
https://programmers.co.kr/learn/courses/30/lessons/60057 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 "어피치"는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문 programmers.co.kr 문제유형 : 문자열, 구현 공식사이트에 나와있는 출제의도 : 문자열을 다룰 수 있고, 아래 예시와 같이 문자열과 관련된 다양한 작업을 할 수 있는지 파악 문자열 자르기 부분 문자열 얻기 문자열 비교하기 문자열 길이 얻기 문제풀이 : 우선 이 문제는 문자열의 길이가 최대 1000이므로 모든 가능한 압축을 전부 해보는 완전탐색문제이다. 길이가 줄어들수있는 ..
https://programmers.co.kr/learn/courses/30/lessons/60058 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 "콘"은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 programmers.co.kr 문제유형 : 구현, 재귀 문제풀이 : 문제에서 주어진 로직을 그대로 구현할 수 있느냐 없느냐 재귀함수를 잘 이해해야한다. 괄호가 짝이 맞는지 체크할때는 스택을 이용한다. 괄호가 열릴때마다 스택에 넣고 괄호가 닫힐때마다 스택에서 빼면된다. 이때 닫힌 괄호가 나와서 스택에서 하나 빼려할때 스택이 비었다면, 즉 열리지도 않았는데 닫히려고한다는것이므로 짝 안맞음 이 문제..
https://programmers.co.kr/learn/courses/30/lessons/72413 코딩테스트 연습 - 합승 택시 요금 6 4 6 2 [[4, 1, 10], [3, 5, 24], [5, 6, 2], [3, 1, 41], [5, 1, 24], [4, 6, 50], [2, 4, 66], [2, 3, 22], [1, 6, 25]] 82 7 3 4 1 [[5, 7, 9], [4, 6, 4], [3, 6, 1], [3, 2, 3], [2, 1, 6]] 14 6 4 5 6 [[2,6,6], [6,3,7], [4,6,7], [6,5,11], [2,5,12], [5,3,20], [2,4 programmers.co.kr 문제유형 : 최단경로 ( 다익스트라, 플로이드워셜) 문제풀이 : 중간지점을 k (1..
https://programmers.co.kr/learn/courses/30/lessons/72411 코딩테스트 연습 - 메뉴 리뉴얼 레스토랑을 운영하던 스카피는 코로나19로 인한 불경기를 극복하고자 메뉴를 새로 구성하려고 고민하고 있습니다. 기존에는 단품으로만 제공하던 메뉴를 조합해서 코스요리 형태로 재구성해서 programmers.co.kr 문제유형 : 문자열, 구현 문제풀이 : 주어진 orders에 따라서 해당하는 각각의 개수만큼의 조합을 찾는다. 예를들어, 주어진 배열이 ["ABCFG", "AC", "CDE", "ACDE", "BCFG", "ACDEH"],[2,3,4] 일때 // 각 원소에 대해서 차례로 2개개수 조합, 3개개수 조합, 4개개수 조합 [('A', 'B'), ('A', 'C'), (..
https://programmers.co.kr/learn/courses/30/lessons/72410 코딩테스트 연습 - 신규 아이디 추천 카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로 programmers.co.kr 문제유형 : 문자열, 구현 문제풀이 : 정규표현식 문자열(알파벳소문자, 알파벳ㄷ문자, 숫자, - ,_, . 를 제외한(^) 모든문자 제거하기 new_id = re.sub(r"[^a-zA-Z0-9-_.]", "", new_id) 문자열 양쪽끝 특정문자 제거 strip() : 파라미터없을때는 공백을제거, 특정문자를 제거하고싶으면 해당문자를 파라미터로 주면됨 ..