https://school.programmers.co.kr/learn/courses/30/lessons/87946 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 이제 어느정도 기본 DFS문제는 감이 온 것 같다 백트래킹으로 던전 탐사가 가능한 최대값을 구해줬다. class Solution { static int join = 0; public int solution(int k, int[][] dungeons) { boolean[] bl = new boolean[dungeons.length]; dfs(dungeons, bl, 0, k, 0, 0); re..
https://school.programmers.co.kr/learn/courses/11132/lessons/71156 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제에서, K만큼을 뽑아내어 가장 큰 수 - 가장 작은 수의 최소를 구하라고 했다. 처음에는 재귀를 통해 완전탐색을 하려하다가, 정렬을 통해 K만큼을 뽑아내면 되지 않나 생각했더니 엄청 간단하게 풀렸다. 1. 오름차순 정렬 후 answer 초기화 (배열의 가장 큰 수인 arr의 마지막값) 2. K를 뽑을 수 있는 경우의 수인 arr의길이-K만큼만 반복을 돌린다. 3. 돌리는 과정에서, ..
https://school.programmers.co.kr/learn/courses/30/lessons/42842# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. div메서드를 통해 총 카펫 크기의 약수를 모조리 구한다. public void div(int sum) { for(int i=1; i
https://school.programmers.co.kr/learn/courses/11132/lessons/71157 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 단순한 문제 words 배열의 반복문을 통해 검증하면 끝... 설명이 딱히 필요없음 public int solution(int K, String[] words) { if(words.length==1) return 1; int answer = 1; int size = 0; for(int i=0; i K){ answer++; size=0; } size += words[i].length()+..
https://school.programmers.co.kr/learn/courses/30/lessons/42839 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 1. DFS를 활용한 백트래킹을 통해 모든 경우의수 체크 2. 소수일 경우 중복을 거르기 위한 Set 사용 두가지를 메인으로 잡고 풀었다. import java.util.*; class Solution { static Set set = new HashSet(); char[] ch = new char[] {}; boolean[] bl = new boolean[] {}; public int so..
https://school.programmers.co.kr/learn/courses/30/lessons/86491 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제 자체는 어렵지 않았다. 1. sizes 배열에서 긴 쪽을 가로, 세로 중 한 곳으로 몰아넣음 2. 가로가 가장 큰 녀석, 세로가 가장 큰 녀석 곱해주면 끝. 첫 풀이 class Solution { public int solution(int[][] sizes) { int[][] size = new int[sizes.length][2]; for(int i=0; i
https://school.programmers.co.kr/learn/courses/30/lessons/42840 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 나의 수포 머리로는 도대체 간결하게 짤 수 있는 방법을 못찾겠어서 때려박았다.. 문제 자체는 쉬웠기 때문에 그러려니 할 수 있지만 이 바보같은 머리로 도저히 간략하게 짜지를 못하겠다.. 정답공유 글을 찾아서 봐도 마찬가지다 ㅋㅋ;; class Solution { public int[] solution(int[] answers) { int[] people = new int[3]; int[] o..
https://school.programmers.co.kr/learn/courses/30/lessons/42577 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 쉬운 문제로, 딱히 생각할 것은 없었다고 생각한다. 접두어기 때문에 contains를 사용하지 않고 startsWith를 사용하여 풀었다. import java.util.*; class Solution { public boolean solution(String[] phone_book) { Arrays.sort(phone_book); for(int i=0; i