문제 정보는 아래 링크를 확인해주세요! [암호코드] 2011번: 암호코드 문제 상근이와 선영이가 다른 사람들이 남매간의 대화를 듣는 것을 방지하기 위해서 대화를 서로 암호화 하기로 했다. 그래서 다음과 같은 대화를 했다. 상근: 그냥 간단히 암호화 하자. A를 1이� www.acmicpc.net 문제 접근 방법 암호코드의 첫째 자리부터 마지막 자리수까지 만들 수 있는 가지수를 구해나가는 DP 방식 만들 수 있는 문자의 번호는 1 ~ 26 이므로 현재값으로 1~9 사이의 문자를 만들 수 있는지 확인하고 현재값과 이전값으로 10 ~ 26 사이의 문자를 만들 수 있는지 확인한다. 유의해야할 부분은 각 DP 요소마다 범위를 넘어설 수 있으므로 1000000으로 나눠주고 암호코드의 첫 번째 요소가 '0'이면 문자..
Java
문제 정보는 아래 링크를 확인해주세요! [조이스틱] 코딩테스트 연습 - 조이스틱 조이스틱으로 알파벳 이름을 완성하세요. 맨 처음엔 A로만 이루어져 있습니다. ex) 완성해야 하는 이름이 세 글자면 AAA, 네 글자면 AAAA 조이스틱을 각 방향으로 움직이면 아래와 같습니다. ▲ - 다 programmers.co.kr 문제 접근 방법 name의 길이만큼 'A'로 구성된 문자열을 만듭니다. name의 문자열의 요소가 'A'가 아닌 곳을 찾고 해당 요소를 위,아래로 움직인 횟수중 더 작은 값을 결과값에 추가해줍니다. 해당 요소에서 왼쪽과 오른쪽을 탐색해주면서 더 적은 이동으로 'A'가 아닌 곳을 찾는 방향을 선택합니다. 이 때, 유의해야할 점은 왼쪽과 오른쪽 검사에서 오른쪽 검사를 먼저해줍니다. 그 이유는 왼..
문제 정보는 아래 링크를 확인해주세요! [카카오프렌즈 컬러링북] 코딩테스트 연습 - 카카오프렌즈 컬러링북 6 4 [[1, 1, 1, 0], [1, 2, 2, 0], [1, 0, 0, 1], [0, 0, 0, 1], [0, 0, 0, 3], [0, 0, 0, 3]] [4, 5] programmers.co.kr 문제 접근 방법 기본적인 BFS 탐색 문제입니다. 그림판을 탐색하면서 0이 아니고 방문하지 않은 곳을 발견하면 영역을 하나 증가 시켜주고 현재 방문한 곳부터 상,하,좌,우를 탐색하며 같은 영역을 찾습니다. 해당 영역에 대한 탐색이 끝나면 그 영역의 갯수와 최댓값을 비교해줍니다. 다음 영역을 구하기위해 그림판을 재탐색합니다. [소스 코드] package algorithm.programmersLevel2..
문제 정보는 아래 링크를 확인해주세요! [다리를 지나는 트럭] 코딩테스트 연습 - 다리를 지나는 트럭 트럭 여러 대가 강을 가로지르는 일 차선 다리를 정해진 순으로 건너려 합니다. 모든 트럭이 다리를 건너려면 최소 몇 초가 걸리는지 알아내야 합니다. 트럭은 1초에 1만큼 움직이며, 다리 길이�� programmers.co.kr 문제 접근 방법 다리를 지나고 있는 트럭에 대한 정보와 대기하고 있는 트럭의 정보를 만들어주고 현재 다리의 가능 무게보다 대기중인 트럭의 무게가 작거나 같으면 그 트럭을 다리를 지나는 트럭 정보에 추가해주고, 현재 가능 무게를 트럭의 무게만큼 감소시킨다. 다리를 지나는 트럭 정보에서 트럭이 다리를 건넜으면 그 트럭을 제거해주고, 트럭의 무게만큼 가능 무게를 증가한다. 다리를 지나는..
문제 정보는 아래 링크를 확인해주세요! [주식가격] 코딩테스트 연습 - 주식가격 초 단위로 기록된 주식가격이 담긴 배열 prices가 매개변수로 주어질 때, 가격이 떨어지지 않은 기간은 몇 초인지를 return 하도록 solution 함수를 완성하세요. 제한사항 prices의 각 가격은 1 이상 10,00 programmers.co.kr 문제 접근 방법 주식가격이 담긴 배열을 자신의 인덱스보다 높은 값들과 비교하면서 자신의 값보다 작은 값이 나오면 종료하고 해당 값까지의 시간을 결과 배열에 추가 [소스 코드] package algorithm.programmersLevel2; /* * 프로그래머스 * 주식가격 * */ public class Pro42584 { public int[] solution(int..
문제 정보는 아래 링크를 확인해주세요! [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형 자료구조이다. 알기 쉽게 설명..