목록알고리즘/프로그래머스 (54)
이숭간 공부기록
https://programmers.co.kr/learn/courses/30/lessons/64065 코딩테스트 연습 - 튜플 "{{2},{2,1},{2,1,3},{2,1,3,4}}" [2, 1, 3, 4] "{{1,2,3},{2,1},{1,2,4,3},{2}}" [2, 1, 3, 4] "{{4,2,3},{3},{2,3,4,1},{2,3}}" [3, 2, 4, 1] programmers.co.kr 문제유형 : 튜플, 문자열, 구현 문제풀이 : 주어진 문자열을 먼저 다룰수있는 리스트로 만든다. 나는 이부분을 좀 복잡하게 해결했는데 엄청 간단히 하신분이 있었다. s1 = s.lstrip('{').rstrip('}').split('},{') new_s = [] for i in s1: new_s.append(i..
https://programmers.co.kr/learn/courses/30/lessons/12973 코딩테스트 연습 - 짝지어 제거하기 짝지어 제거하기는, 알파벳 소문자로 이루어진 문자열을 가지고 시작합니다. 먼저 문자열에서 같은 알파벳이 2개 붙어 있는 짝을 찾습니다. 그다음, 그 둘을 제거한 뒤, 앞뒤로 문자열을 이어 붙 programmers.co.kr 문제유형 : 스택 문제풀이 : 짝짓는 문제 - 스택을 이용하면 쉽게 풀수 있다. 스택이 비어있는지 확인하고 비어있다면 값을 넣어준다. 스택이 비어있지 않다면 넣기전에 가장 상단에 있는 값과 현재 넣으려는 값을 비교하고 같으면 스택에 값을 추가하지 않고 pop을 통해 제거만 한다. 마지막에 스택이 비어있다면 1을, 남아있다면 0을 출력하도록 한다. 얼..
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..