목록Algorithm (17)
멍두의 개발새발

📍 문제https://www.acmicpc.net/problem/11726📍 코드 설명2 * n 의 직사각형을 2 * 1 or 1 * 2 의 직사각형으로 채울 때 가능한 경우의 수를 찾는 문제 이 때 결국 1 * n개의 직사각형을 1 * 1 or 1 * 2의 직사각형으로 채울 때와 동일하므로 결국 배열을 2칸 채우냐, 1칸 채우냐로 생각하면 편하다.일단 어떻게 풀어야할지 감이 오지 않으므로 5개 까지는 손으로 직접 구해본다 n = 1경우의 수 1 => 1개 n = 2경우의 수 11 / 2 => 2개 n = 3경우의 수 111 / 12 / 21 => 3개 n = 4경우의 수 1111 / 112 / 121 / 211 / 22 => 5개 n = 5경우의 수 11111 / 1112 / 1121 / 1211..

동적프로그래밍을 배울 때 가장 기본적으로 이해하기 좋은 피보나치 수열에 대해 알아보자 피보나치 수열첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열 1 : 12 : 13 : 24 : 35 : 56 : 8...n : n - 1 + n - 2 DP를 적용하지 않은 코드import java.util.*;public class Main{ public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); System.out.println(fibonacci(n)); } static int fibonacci(in..

📍 문제https://www.acmicpc.net/problem/1463📍 코드 설명n % 3 == 0 이면 n/3 , n% 2 == 0이면 n/2, n-13가지 연산을 진행해서 가장 빨리 1에 도달하는 연산횟수를 찾는 문제 입력의 크기가 1 ~ 10^6이고 시간 제한 0.15초이므로 모든 경우의 수를 계산하면 시간 초과 직전의 연산 결과를 기억하고 계산하는 DP 문제로 예상가능 재귀문제로 접근1. 종료 조건 : 현재 탐색 횟수 count 가 현재 탐색최소 탐색 횟수 1보다 클 때 굳이 계산할 필요 X2. n의 초기 값은 integer max => 가장 먼저 1에 접근한 count를 min으로 저장하기 위해3. n이 1에 도달시 min과 비교하여 더 작은 값을 min에 저장4. n/3 , n/2 ..
📍 문제https://school.programmers.co.kr/learn/courses/30/lessons/42576 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📍 코드 설명String 배열 participant와 completion을 비교하여 participant에는 있지만 completion에는 없는 값을 출력하면 된다.매우 간단한 문제이지만 중복값이 있기때문에 주의해야한다. 1. 전체를 다 돌지 않도록 값을 검색하도록 hashMap을 사용한다. 이 때, name으로 검색하므로 key = name, value = 사람 수를 저장한다.getOrD..
📍 문제https://school.programmers.co.kr/learn/courses/30/lessons/118666?language=java 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📍 코드 설명MBTI문제이다 ㅋㅋRT / CF / JM / AN 이 짝이고 둘 중에 점수가 큰 값을 출력한다 ex RCJA survey가 AN, choices가 7이면 N에 +3점 ,choices가 1이면 A에 +3점survey가 NA, choices가 7이면 A에 +3점, choices가 1이면 N에 +3점 1. 설문 조사 결과를 담을 map을 하나 만든다이때..

📍 문제https://school.programmers.co.kr/learn/courses/30/lessons/64061 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 📍 문제설명인형을 뽑고 stack에 쌓은 뒤 stack에 연속으로 같은 인형이 있으면 인형이 터지고, 터진 인형 수를 합하는 문제이다.대놓고 stack문제이다.📍 코드인형을 꺼낸다. 가로 좌표는 고정 + 세로 좌표만 이동, 끝까지 0이면 꺼낼 인형이 없으므로 for문 종료꺼낸 인형 값과 스택에 쌓인 값을 비교한다. 동일하다면 꺼낸 인형을 스택에 쌓지 않고 기존 stack값만 꺼낸뒤 점수를..