분류 전체보기 152

LV2 - 소수 찾기 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42839# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이방문을 체크하는 방식으로 dfs를 순회해서 모든 경우의 수를 만든다.모든 경우의 수를 넣을때, 011과 11은 같은 값으로 처리하기에 int로 바꾼다음에 set으로 중복을 제거했다.이후 소수인지 판별하는 식으로 정답을 구한다!코드import java.util.*;class Solution { public Set set = new HashSet(); public int solut..

프로그래머스 2024.06.27

LV2 - 다리를 지나는 트럭 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/42583 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이너무나 queue 스러운 문제였다. 중요한 부분은 다리의 무게 한계점과, 각 트럭의 이동을 체크하는거였다. 사실 무게는 변수하나를 두고, 큐에 들어오고 나갈때 계산만하면 되었다. 그래서 다리에서 이동하는 트럭을 체킹하는게 문제였는데, 나는 큐에 실제로 다리를 놓는다는 방식으로 생각했다. 우선 큐에 다리길이만큼 -1이라는 상징적인 값을 넣는다. 이후에 큐의 가장 앞을 빼고, 다시 새로운 값을 ..

프로그래머스 2024.06.26

LV2 - 숫자 변환하기 (Java)

문제https://school.programmers.co.kr/learn/courses/30/lessons/154538# 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이dp? bfs 스러운 문제이다. x로부터 조건에 맞게 값을 더해주거나 곱해주면서 뻗어가면서,해당 값이 몇번만에 만드는지 파악해야한다. 값을 몇번만에 만드는지 저장할 array가 있어야하고,bfs를 수행할 덱을 선언한다. 처음 x값을 0으로 설정한다음 이 값으로 부터 bfs를 수행한다.방문 여부 및 한계값을 체크한다음, 조건에 만족한다면 기존 값을 만드는 횟수 + 1 을 배열에 저장해주면 ..

프로그래머스 2024.06.25

LV2 땅따먹기 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 단순한(?) dp(?)문제다. 위에서 아래로 내려오고, 같은 열의 값은 밞을 수 없다는 조건을 생각해서 dp 2차원 배열을 갱신해주면 된다. dp배열의 값은 "현재 칸에 올 경우 가장 큰 값" 을 정의한다. 따라서 점화식은 dp[행][열] = (land[행][열]) + dp(이전 행 중 가장 큰 값) 위처럼 구성되고, dp(이전 행 중 가장 큰 값)

프로그래머스 2023.12.21

LV2 뒤에 있는 큰 수 찾기 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/154539# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 스택을 활용하여 풀 수 있는 문제였다. 처음에는 값 그 자체를 스택에 넣고, 큰 값이 오면 갱신해줘야했나? 했는데 이럴 경우 정답배열의 어떤 위치에 값을 업데이트 해줘야할 지 애매모호했다. 관점을 조금 바꿔서 인덱스를 넣는 방식으로 구현하면 풀 수 있었다. (스택에는 배열의 인덱스를 넣고, 값을 찾을땐 numbers[idx] 이런 방식으로 접근했다.) 문제 같은 경우에는 number..

프로그래머스 2023.12.21

[네이버 부스트캠프 8기] 그룹프로젝트와 부캠을 마치며 (feat. 네트워킹데이)

엊그제 시작한 거 같은 6주간의 프로젝트가 끝이났다. 아이러니하게도 끝나고나니 뿌듯함보다는 허무함과 공허함이 몰려오는 느낌이다. 시작에 따른 끝은 항상 존재하는데, 아직도 이런 끝남에 있어서는 익숙하지 않은거 같다. 프로젝트 과정이 그만큼 재밌었나 보다. 유독 싱숭생숭한 연말이지만 6주간의 프로젝트와 부스트캠프를 마무리하며 느낀점을 작성해보려 한다. 6주간의 그룹 프로젝트 우선 6주간 진행한 프로젝트동안 느낀점을 작성해보겠다. 팀마다의 룰 그리고 문화 프로젝트를 처음에 셋업할 때, 여러 컨벤션과 룰을 정하려고 노력했다. 프로젝트 관리차원으로 언제부터 언제까지를 코어타임에 둘 것이며, commit 컨벤션은 어떻게 하고, 코드 작성 방식은 어떤식으로 할 지.. 등등 의욕이 가득한 만큼 꽤나 디테일하게 하고 ..

회고 2023.12.19

LV3 단어 변환 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/43163 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 단순한 dfs 문제이다. 방문 여부를 따지면서 모든 경우의 수를 체크해보면 된다. 단 문자열에서 문자 하나만 다를경우 해당 문자열로 바꿀 수 있기에 그 부분만 잘 체크하면 무난하게 풀 수 있다. 코드 import java.util.*; class Solution { public boolean[] visited; public int answer = Integer.MAX_VALUE; pub..

프로그래머스 2023.11.24

LV3 모음사전 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 5개의 요소 밖에 없기 때문에 완전탐색을 돌면된다. 처음에는 모든 경우의 수를 만들고 정렬을 해야할거라고 생각했는데, A E I O U 가 애초에 정렬이 되어있는 순서였기에, 완전 탐색을 앞에서부터 수행하면 자동으로 오름차순으로 배열에 추가할 수 있다! 또한 나는 해당 요소를 선택할지, 말지를 고르는 식으로 분기를 두개 나누어서 처음에 풀었는데 모든 요소를 만들어야 하기에 딱히 그럴 필..

프로그래머스 2023.11.23

LV3 최고의 집합 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12938# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 우선, 어떤 상황에 -1이 나올까? n이 3인데 s가 2라고 해보자. 각 원소는 1이상의 값을 가지는데, 최소 형태인 [1, 1, 1] 로 만들면 이미 s를 넘기 때문에 답을 낼 수 없다. 따라서 이때 우선 -1을 담은 배열을 return 하면 된다. 그게 아닐경우에는 어떻게 할까? 예시를 보면 n=2, s=9 => [4, 5] n=2, s=8 => [4, 4] 와 같이 나타난다. 이..

프로그래머스 2023.11.22

LV3 야근지수 (Java)

문제 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제를 보고서 제곱이라는 행위에 대해 생각해보았다. 단순히 3의 제곱과 4의 제곱을 살펴만 봐도 9와 16, 약7의 차이가 나는것을 알 수 있다. 따라서 작은값을 0에 가깝게 만드는 행위보다, 큰 값들부터 줄여서 평균을 낮추는 방식으로 문제를 풀이해야 한다. 남은 일 중에 가장 큰 값을 꺼내서 일을 수행하고, 다시 넣어준다. 이 과정을 일이 없거나, 퇴근할 때 까지 반복하면 된다. 최대..

프로그래머스 2023.11.21