문제 정보는 아래 링크를 확인해주세요! [124 나라의 숫자] 코딩테스트 연습 - 124 나라의 숫자 124 나라가 있습니다. 124 나라에서는 10진법이 아닌 다음과 같은 자신들만의 규칙으로 수를 표현합니다. 124 나라에는 자연수만 존재합니다. 124 나라에는 모든 수를 표현할 때 1, 2, 4만 사용합니다. programmers.co.kr 문제 접근 방법 3진수를 구한다는 생각으로 접근한다. n에 대한 k진수 값을 구하기 위해서는 0부터 구해나가는 것이 아닌 n을 k로 나누면서 결과값의 앞에 추가해주면서 구해나간다. 이 때, 유의해야할 점은 나눴을 때의 나머지 값이 0~k가 나오므로 나머지를 (k,1,2,~,k-1) 인덱스에 맞춰준다. 여기서는 1,2,4이므로 나머지를 (4,1,2) 인덱스에 맞춰준..
코딩테스트
문제 정보는 아래 링크를 확인해주세요! [기둥과 보 설치] 코딩테스트 연습 - 기둥과 보 설치 5 [[1,0,0,1],[1,1,1,1],[2,1,0,1],[2,2,1,1],[5,0,0,1],[5,1,0,1],[4,2,1,1],[3,2,1,1]] [[1,0,0],[1,1,1],[2,1,0],[2,2,1],[3,2,1],[4,2,1],[5,0,0],[5,1,0]] 5 [[0,0,0,1],[2,0,0,1],[4,0,0,1],[0,1,1,1],[1,1,1,1],[2,1,1,1],[3,1,1,1],[2,0,0,0],[1,1,1,0],[2,2,0,1]] [[ programmers.co.kr 문제 접근 방법 프레임 정보가 담긴 배열에서 기둥/보를 순서대로 하나씩 추가해보거나 제거해본다. 추가/제거 후 기둥/보에 대한..
문제 정보는 아래 링크를 확인해주세요! [가사 검색] 코딩테스트 연습 - 가사 검색 programmers.co.kr [문제 접근 방법] Trie 알고리즘을 통해 단어 배열에 대한 트리 구조를 만들어준다. '?'는 문자열의 앞,뒤 둘 중에 한 곳에만 존재하고, 중간에는 존재할 수 없으므로 문자열의 앞부터 찾아주는 Trie와 뒤부터 찾아주는 Trie를 만든다. 쿼리 문자열이 '?'로 시작하면 뒤에서부터 찾아주는 Trie를 통해 찾아주고, 쿼리 문자열이 '?'로 시작하지 않는다면, 앞에서부터 찾아주는 Trie를 통해 찾아준다. Trie 알고리즘? retrieval tree에서 나온 단어로, 문자나 문자열을 하나의 'key'로 사용하는 Set을 연관 배열을 통해 저장하는 Tree형 자료구조이다. 알기 쉽게 설명..
문제 정보는 아래 링크를 확인해주세요! [자물쇠와 열쇠] 코딩테스트 연습 - 자물쇠와 열쇠 [[0, 0, 0], [1, 0, 0], [0, 1, 1]] [[1, 1, 1], [1, 1, 0], [1, 0, 1]] true programmers.co.kr 문제 접근방법 자물쇠를 3배 늘려준 새로운 맵을 형성하고 늘려준 맵의 중간에 제공 받은 좌물쇠를 위치시킨다. 키를 회전하면서 늘려준 배열에 있는 자물쇠와 맞춰본다. 유의할 점은 키의 돌기와 자물쇠의 돌기가 같으면 안된다는점과 자물쇠의 모든 부분이 1이 되어야한다는 점이다. 이 점에 유의하면서 분기문을 돌리다가 자물쇠가 채워지는 구간이 있을 때 TRUE를 반환한다. [소스 코드] package algorithm.kakao; import java.util.*..
문제 정보는 아래 링크를 확인해주세요! [괄호 변환] 코딩테스트 연습 - 괄호 변환 카카오에 신입 개발자로 입사한 콘은 선배 개발자로부터 개발역량 강화를 위해 다른 개발자가 작성한 소스 코드를 분석하여 문제점을 발견하고 수정하라는 업무 과제를 받았습니다. 소스를 컴� programmers.co.kr 문제 접근 방법 제공 받은 문자열을 기준으로 u와 v를 만들어준다. v 문자열을 다시 u와 v로 만들고 v가 빈 문자열이 될 때까지 반복한다.(재귀를 통해 진행) v가 빈 문자열이 되었을 때, u에 대해서 올바른 괄호 문자열인지 검사하고, u와 v에 대한 올바른 괄호 문자열을 만들어준다. 이 과정이 진행되면서 결국 마지막에는 처음 u와 v가 만들어졌던 로직으로 돌아오게 되는데, 이 때의 올바른 괄호 문자열인 ..
문제 정보는 아래 링크를 확인해주세요! [문자열 압축] 코딩테스트 연습 - 문자열 압축 데이터 처리 전문가가 되고 싶은 어피치는 문자열을 압축하는 방법에 대해 공부를 하고 있습니다. 최근에 대량의 데이터 처리를 위한 간단한 비손실 압축 방법에 대해 공부를 하고 있는데, 문자 programmers.co.kr 문제 접근 방법 압축 가능한 길이를 1부터 문자열의 절반까지 정해주고, 문자열의 제일 왼쪽부터 압축 가능 길이만큼을 잘라준 문자열이 오른쪽 같은 길이만큼 잘라준 문자열과 같은지 비교 문자열이 같으면 압축 갯수를 더해주고, 다르면 압축 갯수와 현재 압축된 왼쪽 문자열을 합쳐서 전체 문자열에 더해주고 오른쪽 문자열을 왼쪽 문자열에 넣고 재탐색한다. 압축 가능 길이 n에 대하여 문자열 압축을 끝내면, 해당 ..
문제 정보는 아래 링크를 확인해주세요! [블록 게임] 코딩테스트 연습 - 블록 게임 [[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,4,0,0,0],[0,0,0,0,0,4,4,0,0,0],[0,0,0,0,3,0,4,0,0,0],[0,0,0,2,3,0,0,0,5,5],[1,2,2,2,3,3,0,0,0,5],[1,1,1,0,0,0,0,0,0,5]] 2 programmers.co.kr 문제 접근 방법 검은색 블록을 놓을 수 있는 도형은 2x3과 3x2 이 두개의 직사각형 범위 안에서 확인이 가능하고, 수평으로 긴 직사각형 안에서는 윗칸의 2개의 값이 비어있어야 가능 수직으로 긴..
문제 정보는 아래 링크를 확인해주세요! [매칭 점수] 코딩테스트 연습 - 매칭 점수 매칭 점수 프렌즈 대학교 조교였던 제이지는 허드렛일만 시키는 네오 학과장님의 마수에서 벗어나, 카카오에 입사하게 되었다. 평소에 관심있어하던 검색에 마침 결원이 발생하여, 검색개발팀� programmers.co.kr 문제 접근 방법 주어진 1차원 배열에서 문자열을 하나씩 검사한다. 문자열 검사는 정규식 패턴을 통해 현재 페이지와 현재 페이지가 담고 있는 링크 페이지 정보를 가져온다. 현재 페이지에서 얻을 수 있는 기본 점수를 구한다. 기본 점수를 구할 때, 유의해야할점은 문제 주의 사항에도 언급되었듯이 단어의 반복이다. 이 점에 유의해서 기본 점수를 구한다. 현재 페이지에서 이동할 수 있는 링크 페이지 URL을 추가한다...