📍 문제https://www.acmicpc.net/problem/9095📍 코드 설명입력 된 수를 1, 2, 3의 합으로 만들 수 있는 경우의 수를 세는 문제이다. 1, 2, 3이 합에서 이용되므로 일단 1, 2, 3을 만들 수 있는 경우의 수를 세보자 아직까지는 잘 모르겠으니 5까지 경우의 수를 구해보자 엇 이때 어떤 규칙을 알 수 있다 n=4를 자세히 보자 n=4일때 결국 n=3일때의 경우의 수에 + 1, n=2일때의 값에 + 2, n=1일때의 값에 + 3 을 하면 n=4의 경우의 수와 동일해진다 혹시모르니 n=5도 자세히 보자 여기서도 동일하게 n=4경우의 수에 +1, n=3의 경우의 수에 +2, n=2 의 경우의 수에 +3을 하면 n=5의경우의수가 나오는 것을 볼 수 있다. 이것으로 우리는 n..
📍 문제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을 하나 만든다이때..