본문 바로가기

알고리즘&자료구조(algorithm& data structure)9

[프로그래머스]해시-위장 문제 풀이 programmers.co.kr/learn/courses/30/lessons/42578?language=javascript 코딩테스트 연습 - 위장 programmers.co.kr 1. 종류별로 구분한다. 2. 종류1 2개, 종류2 1개 인 경우를 생각해보자. 2.1 종류1에서 하나를 뽑거나 안 뽑을 수 있다. 따라서 경우의 수는 하나를 뽑는 경우는 두 가지 + 안 뽑는 경우는 1 =>3 2.2 종류2에서 하나를 뽑거나 안 뽑을 수 있다. 하나 뽑는 경우는 한 가지 + 안 뽑는 경우 1 => 2 2.3 2.1의 경우의수와 2.2의 경우의 수를 곱하면 3*2인 6이 된다. 즉, 종류 1에는 {"a","b"}, 종류 2에는 {"z"} 가 있었다고 하면 위에서 가정한 조합은 다음과 같다. {"a", "b" ,.. 2021. 1. 3.
[2020 카카오공채 코딩테스트 1번(문자열 압축) 풀이] 카카오공채 코딩테스트 1번 문제 풀이입니다. 문자열 압축 문제이며 서브 스트링을 반복문을 활용하여 체크하면 됩니다. python의 슬라이싱 기능을 적극 활용하면 되는 문제입니다. 최소단위 1부터 최대단위 문자열길의/2 까지 확인하면 됩니다. 즉 문자가 9개인 문자열이라면 1개 단위부터 4개 단위까지 체크하면 됩니다. 모든 단위에 대해서 문자열 압축을 진행한 후 최소값을 찾아야 하기 때문에 모든 케이스를 커버하는 일반적인 문자열 압축 함수를 만들면 되겠습니다. 문자열의 길이가 문자열에 의해 결정되므로 길이를 입력으로 하는 함수를 만들면 편리합니다. 즉, 입력은 체크 단위, 출력은 압축된 문자열을 하는 함수 모듈을 만들어 사용하면 되겠습니다. 내부 코드 구현은 서브스트링을 특정 구간에 대해서 일치하는지 확인.. 2020. 3. 12.
[2020 카카오공채 코딩테스트 2번(괄호 변환) 풀이] 카카오 공채 코딩테스트 2번 풀이 글입니다. 2번 문제는 설명에 주어진 그대로를 구현하는 문제이며 재귀, 함수에 대한 개념이 명확하게 있어야 풀 수 있습니다. 우선 문제 설명을 이해하는 것이 제일 어려웠습니다. 예시에서 u의 변환 부분이 추가 되는 것이 '('와 ')' 사이인지 뒤인지 모호하게 설명되 있어서 이 부분을 명확하게 캐치하는 것이 핵심입니다. 저는 다양한 테스트 케이스를 직접 확인해가면서 문제의 설명을 정확하게 이해하였습니다. 우선 균형잡힌 괄호 문자열을 파악하는 함수를 만들어 2번을 해결합니다. 애초에 주어진 문자열이 '('와 ')' 의 짝이 맞으므로 저는 문자열 처음 부터 (의 개수와 ) 을 각각 카운트하여 같게 되는 지점을 균형잡힌 문자열 u가 된다고 가정하였습니다. 예를 들어 (())).. 2020. 3. 12.
[프로그래머스 / 고득점 kit] 탐욕법: 조이스틱 ver2 0. 문제링크 1. 풀이방법 설명 2. 코드첨부 0. 문제링크 https://programmers.co.kr/learn/courses/30/lessons/42860# 코딩테스트 연습 - 조이스틱 | 프로그래머스 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다음 알파벳 ▼ - 이전 알파벳 (A에서 아래쪽으로 이동하면 Z로) ◀ - 커서를 왼쪽으로 이동 (첫 번째 위치에서 왼쪽으로 이동하면 마지막 문자에 커서) ▶ - 커서를 오른쪽으로 이동 예를 들어 아래의 방법으로 JAZ를 만들 수 있습니다. - 첫 번째 위 programmers.co.kr 1. 풀이.. 2019. 7. 24.