본문 바로가기
반응형

알고리즘 문제 풀이/프로그래머스18

프로그래머스 : 크레인 인형뽑기 게임 *** 본 풀이는 java 언어를 사용하였습니다 *** 문제 보러가기 요약 board 안의 인형을 moves 순서대로 집어서 바구니에 담는다. 바구니에 담을 때 같은 인형이 2개면 인형이 사라진다. 사라진 인형의 개수를 구하라. 2차원 배열, stack 자료구조에 대한 이해가 있는지 점검하는 문제인 듯 하다. 풀이 바구니에 넣을 때 바구니의 아래쪽부터 쌓이는 방식이므로 stack 자료구조를 이용하면 되겠다고 생각했다. 바구니에 넣을 때, 가장 최근에 바구니에 들어간 인형을 비교하여 인형이 동일하면 바구니의 최근 인형을 제거하는 식으로 코딩을 했더니 쉽게 문제를 풀 수 있었다. 제출 코드 import java.util.Stack; public class Solution { private int countO.. 2020. 4. 3.
2020 KAKAO BLIND RECRUITENT : 자물쇠와 열쇠 *** 본 풀이는 java언어를 사용하였습니다. *** 문제 보러가기 핵심 요약 Key가 Lock의 구멍에 정확히 일치하는가 (key가 회전 가능) 2차원 배열에 대한 이해 / 깉은 , 얕은 복사에 대한 이해 필요 여러가지 풀이법이 있겠지만 기존 Lock의 크기로 Key를 비교하기엔 여간 까다로운게 아니다. 그럼 어떻게 해야할까? Lock의 크기를 확장하면 된다. Lock의 배열의 크기를 Key가 바로 검증할 수 있는 크기로 확장하고, Lock을 중앙에 배치하면 다음과 같이 Key를 통해 바로 탐색이 가능해 진다. 확장 크기는 lock.length + (key.length - 1) * 2를 통해 확장할 수 있다. 그 후 Key가 확장 배열에 값을 더하면서 Lock의 배열 값들이 모두 1이 들어있는지를 판.. 2020. 1. 23.
2020 KAKAO BLIND RECRUITENT : 괄호 변환 *** 본 풀이는 java 언어를 사용하였습니다. *** 문제 보러가기 핵심 요약 균형잡힌 괄호 문자열 p를 입력받으면, 올바른 괄호 문자열로 변환하라 규칙 설명이 상세하게 잘 되어있어, 규칙대로 하나씩 차근차근 만들어 나가면 무리없이 문제를 풀 수 있을 것이라 생각한다. 규칙은 다음과 같다. 1. 입력이 빈 문자열인 경우, 빈 문자열을 반환합니다. 2. 문자열 w를 두 "균형잡힌 괄호 문자열" u, v로 분리합니다. 단, u는 "균형잡힌 괄호 문자열"로 더 이상 분리할 수 없어야 하며, v는 빈 문자열이 될 수 있습니다. 3. 문자열 u가 "올바른 괄호 문자열" 이라면 문자열 v에 대해 1단계부터 다시 수행합니다. 3-1. 수행한 결과 문자열을 u에 이어 붙인 후 반환합니다. 4. 문자열 u가 "올바른.. 2020. 1. 21.
프로그래머스 LEVEL 3 : 타일 장식물 프로그래머스 LEVEL 3 : 타일 장식물 언어 : JAVA 문제 대구 달성공원에 놀러 온 지수는 최근에 새로 만든 타일 장식물을 보게 되었다. 타일 장식물은 정사각형 타일을 붙여 만든 형태였는데, 한 변이 1인 정사각형 타일부터 시작하여 마치 앵무조개의 나선 모양처럼 점점 큰 타일을 붙인 형태였다. 타일 장식물의 일부를 그리면 다음과 같다. 그림에서 타일에 적힌 수는 각 타일의 한 변의 길이를 나타낸다. 타일 장식물을 구성하는 정사각형 타일 한 변의 길이를 안쪽 타일부터 시작하여 차례로 적으면 다음과 같다. [1, 1, 2, 3, 5, 8, .] 지수는 문득 이러한 타일들로 구성되는 큰 직사각형의 둘레가 궁금해졌다. 예를 들어, 처음 다섯 개의 타일이 구성하는 직사각형(위에서 빨간색으로 표시한 직사각형.. 2019. 4. 8.
프로그래머스 LEVEL 3 : 정수 삼각형 (DP) 프로그래머스 LEVEL 3 : 정수 삼각형 언어 : JAVA 문제 설명 위와 같은 삼각형의 꼭대기에서 바닥까지 이어지는 경로 중, 거쳐간 숫자의 합이 가장 큰 경우를 찾아보려고 합니다. 아래 칸으로 이동할 때는 대각선 방향으로 한 칸 오른쪽 또는 왼쪽으로만 이동 가능합니다. 예를 들어 3에서는 그 아래칸의 8 또는 1로만 이동이 가능합니다. 삼각형의 정보가 담긴 배열 triangle이 매개변수로 주어질 때, 거쳐간 숫자의 최댓값을 return 하도록 solution 함수를 완성하세요. 제한사항 삼각형의 높이는 1 이상 500 이하입니다. 삼각형을 이루고 있는 숫자는 0 이상 9,999 이하의 정수입니다. 입출력 예 triangle result [[7], [3, 8], [8, 1, 0], [2, 7, 4,.. 2019. 4. 7.
[LEVEL1][JAVA] 소수 찾기 프로그래머스 [LEVEL 1 ] 소수 찾기 사용 언어 : JAVA # 문제 문제 설명 1부터 입력받은 숫자 n 사이에 있는 소수의 개수를 반환하는 함수, solution을 만들어 보세요.소수는 1과 자기 자신으로만 나누어지는 수를 의미합니다. (1은 소수가 아닙니다.) 제한 조건 n은 2이상 1000000이하의 자연수입니다. 입출력 예 nresult 10453 입출력 예 설명 입출력 예 #1 1부터 10 사이의 소수는 [2,3,5,7] 4개가 존재하므로 4를 반환입출력 예 #2 1부터 5 사이의 소수는 [2,3,5] 3개가 존재하므로 3를 반환 # 해결 package programmers.q12921; public class Main { public static void main(String[] args.. 2019. 1. 14.