본문 바로가기

전체 글

(127)
LV2 땅따먹기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12913 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 단순한(?) dp(?)문제다. 위에서 아래로 내려오고, 같은 열의 값은 밞을 수 없다는 조건을 생각해서 dp 2차원 배열을 갱신해주면 된다. dp배열의 값은 "현재 칸에 올 경우 가장 큰 값" 을 정의한다. 따라서 점화식은 dp[행][열] = (land[행][열]) + dp(이전 행 중 가장 큰 값) 위처럼 구성되고, dp(이전 행 중 가장 큰 값)
LV2 뒤에 있는 큰 수 찾기 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/154539# 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 스택을 활용하여 풀 수 있는 문제였다. 처음에는 값 그 자체를 스택에 넣고, 큰 값이 오면 갱신해줘야했나? 했는데 이럴 경우 정답배열의 어떤 위치에 값을 업데이트 해줘야할 지 애매모호했다. 관점을 조금 바꿔서 인덱스를 넣는 방식으로 구현하면 풀 수 있었다. (스택에는 배열의 인덱스를 넣고, 값을 찾을땐 numbers[idx] 이런 방식으로 접근했다.) 문제 같은 경우에는 number..
[네이버 부스트캠프 8기] 그룹프로젝트와 부캠을 마치며 (feat. 네트워킹데이) 엊그제 시작한 거 같은 6주간의 프로젝트가 끝이났다. 아이러니하게도 끝나고나니 뿌듯함보다는 허무함과 공허함이 몰려오는 느낌이다. 시작에 따른 끝은 항상 존재하는데, 아직도 이런 끝남에 있어서는 익숙하지 않은거 같다. 프로젝트 과정이 그만큼 재밌었나 보다. 유독 싱숭생숭한 연말이지만 6주간의 프로젝트와 부스트캠프를 마무리하며 느낀점을 작성해보려 한다. 6주간의 그룹 프로젝트 우선 6주간 진행한 프로젝트동안 느낀점을 작성해보겠다. 팀마다의 룰 그리고 문화 프로젝트를 처음에 셋업할 때, 여러 컨벤션과 룰을 정하려고 노력했다. 프로젝트 관리차원으로 언제부터 언제까지를 코어타임에 둘 것이며, commit 컨벤션은 어떻게 하고, 코드 작성 방식은 어떤식으로 할 지.. 등등 의욕이 가득한 만큼 꽤나 디테일하게 하고 ..
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..
LV3 모음사전 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/84512 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 5개의 요소 밖에 없기 때문에 완전탐색을 돌면된다. 처음에는 모든 경우의 수를 만들고 정렬을 해야할거라고 생각했는데, A E I O U 가 애초에 정렬이 되어있는 순서였기에, 완전 탐색을 앞에서부터 수행하면 자동으로 오름차순으로 배열에 추가할 수 있다! 또한 나는 해당 요소를 선택할지, 말지를 고르는 식으로 분기를 두개 나누어서 처음에 풀었는데 모든 요소를 만들어야 하기에 딱히 그럴 필..
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] 와 같이 나타난다. 이..
LV3 야근지수 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/12927 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 문제를 보고서 제곱이라는 행위에 대해 생각해보았다. 단순히 3의 제곱과 4의 제곱을 살펴만 봐도 9와 16, 약7의 차이가 나는것을 알 수 있다. 따라서 작은값을 0에 가깝게 만드는 행위보다, 큰 값들부터 줄여서 평균을 낮추는 방식으로 문제를 풀이해야 한다. 남은 일 중에 가장 큰 값을 꺼내서 일을 수행하고, 다시 넣어준다. 이 과정을 일이 없거나, 퇴근할 때 까지 반복하면 된다. 최대..
LV2 게임 맵 최단거리 (Java) 문제 https://school.programmers.co.kr/learn/courses/30/lessons/1844 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 풀이 완전 기초 bfs이다. 거리를 잴 distance와 방문 여부를 따질 visited를 선언한 후에 좌표 [0, 0] 부터bfs를 수행한다. 범위검사, 방문여부, 벽 존재 여부를 따지면서 bfs를 수행하고 목표하던 곳이 방문되지 않았다면 -1, 그게 아니라면 distance 값을 리턴해주면 된다. 코드 import java.util.*; class Solution { public int[]..