문제 https://school.programmers.co.kr/learn/courses/30/lessons/42578 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 HashMap의 getOrDefault를 이용하여 해당하는 옷종류의 값을 1씩 추가해준다. 옷 조합의 개수는 hash 결과값을 곱해서 구하면 된다. 다만 옷이 포함될수 있고 안포함 될수도 있다. 포함되는것은 이미 구해졌으므로 포함이 안될경우도 더해줘야 한다. 포함이 안될경우는 1이다. 따라서 hash값에 +1을 하여 곱해주면 된다. 코드 import java.util.*; class S..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/17680# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 캐시에 배열의 값이 있으면 캐시 히트이고 아니면 캐시 미스이다. 3가지에 대해서 생각해보면 된다. 1. 캐시에 배열의 값이 있는 경우 2. 캐시에 배열의 값이 없고 사이즈가 캐시 사이즈보다 작을경우 3. 캐시에 배열의 값이 없고 사이즈가 캐시 사이즈보다 크거나 같을경우 1번은 무조건 캐시 히트이고 2, 3번은 캐시 미스이다.\ 캐시는 리스트로 구현했고 index가 작을수록 오래된것 클..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12949 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이그림을 잘 기억하자 예를 들어 2 x 3 행렬 A와 3 x 2 행렬 B가 있을 때 두 행렬의 곱셈 C는 다음과 같이 나타낼 수 있다 코드 class Solution { public int[][] solution(int[][] arr1, int[][] arr2) { int [][] answer = new int [arr1.length][arr2[0].length]; for(int i=0;i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/87390 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int[] solution(int n, long left, long right) { int len = (int) right - (int) left; int[] answer = new int[len + 1]; int idx = 0; for (long i = left; i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/42747# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이해하는데 시간이 오래 걸린 문제 h번 이상 인용된 논문이 h편 이상이고 나머지 논문이 h번 이하 인용되었다면 h의 최댓값이 이 과학자의 H-Index라고 문제에 나와있다 이를 h번 이상 인용된 논문의 수 >= 현재요소의 인용횟수 라고 이해를 했다 그러나 이 문제는 이게 아니었다 논문의 개수보다 인용횟수가 더 커야했다 즉, >라는 것이다 이때 최대가 될수 있는 논문의 개수를 구하는 것..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/131701 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 Set을 이용하는 문제 특히, 중복을 제거한다면 Set을 이용하도록 하자 풀이 흐름 1. 수열의 길이가 1부터 elements 길이가 될때 까지 반복 2. 0부터 시작해서 수열의 길이가 1인것부터 수열의 합 구하기 3. 원형배열 같은 경우 인덱스가 반복됨=>나머지를 구하면됨. 나머지를 이용하여 수열의 합 구하기 4. Set의 size 구하기 코드 import java.util.*; c..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/76502 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 import java.util.*; class Solution { public int solution(String s) { int answer = 0; for(int i=0;i
문제 https://school.programmers.co.kr/learn/courses/30/lessons/138476 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 귤의 개수가 K일때 크기의 서로 다른 종류가 최소가 되도록 해야 한다. 서로 다른 종류가 최소가 되게 만들려면 각 종류마다 가장 개수가 많은것부터 선정해야한다. 따라서 먼저 각 종류마다귤의 개수를 세서 리스트에 넣어준다 리스트를 내림차순으로 SORTING을 한다 가장 큰것부터 K와 비교해서 K보다 작으면 +1을 하고 리스트에서 없애준다. 그리고 K에서 개수를 빼준다 K보다 크거나 같으..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 N=1부터 나올 수 있는 개수를 구해보면 다음과 같다. N=1 -> 1 N=2 -> 2 N=3 -> 3 N=4 -> 5 N=5 -> 8 즉, n=i-1 과 n=i-2일때의 개수를 더하면 n=i 일때의 개수가 나온다 즉, dp를 방법의 가지수라고 한다면 점화식은 dp[i] = dp[i-1]+d[i-2] 가 된다 코드 class Solution { public long solution(in..
문제 https://school.programmers.co.kr/learn/courses/30/lessons/12953 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 코드 class Solution { public int solution(int[] arr) { int result = 1; for(int i=0;i