목록Java (371)
기록방
👉 문제링크🔸 문제 분석 🔸N x M 직사각형 땅에 수영장을 만든다. 격자 속 숫자가 해당 땅의 높이이다.물을 채워야 하는데, 물은 상하좌우 높은 곳에서 낮은 곳으로만 흐르고 격자 밖으로는 무한정 흘러나가 버린다.채울 수 있는 물의 양의 최대값을 출력한다.🔸 문제 풀이 🔸상하좌우 인접 땅으로 흐르는 물의 이동을 구현하기 위해서 BFS를 사용한다.외각에 붙은 땅은 물이 고일 수 없으므로, 역방향 BFS를 통해 이어진 땅들을 모두 체크한다.물이 고일 수 있는 땅들에 물을 채우고 총합을 출력한다.물 높이의 최대값은 2가지 기준을 유의해서 정한다.해당 높이보다 높아지면 물이 흘러나가버리는 경우 : 최대값의 인덱스가 체크된 경우흘러나가지는 않지만, 땅이 높아서 조금 더 높이 물이 고이는 경우 : 최대값의..
👉 문제링크🔸 문제 분석 🔸1, 2, 3의 덧셈으로 n을 만들 수 있는 조합의 수를 출력한다.🔸 문제 풀이 🔸다이나믹 프로그래밍 문제로, dp[n]은 n을 만드는 조합의 수이다.중복을 제거하기 위해 1로 한바퀴, 2로 한바퀴, 3으로 한바퀴 각각 dp를 돌려야 한다.🔸 코드 🔸import java.io.BufferedReader;import java.io.BufferedWriter;import java.io.IOException;import java.io.InputStreamReader;import java.io.OutputStreamWriter;public class Main { public static void main(String[] args) throws IOException {..
👉 문제링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🔸 문제 분석 🔸N*N 행렬에서 모든 칸의 숫자(시계)를 0(12시방향)으로 만들어야 한다.0 : 12시, 1 : 3시, 2 : 6시, 3 : 9시한 칸의 시계를 시계방향으로 돌릴 수 있고, 돌리면 상하좌우 인접한 시계도 함께 돌아간다.모든 시계를 12시 방향으로 만드는 최소 조작 횟수를 출력한다.🔸 문제 풀이 🔸여러 경우의 수를 따져봐야 하는데, BruteForce는 O(64^4)이므로 너무 크다.Greedy 접근으로 풀이할 수 있다.시계를 조작하는 순서는 상관 없으므로 위쪽에서 아래쪽 행으..
길벗 IT도서에서 주관하는 코딩 자율학습단 8기 : Spring Boot 파트에 참여한 기록입니다 [ 목록 ] 1달동안 500p 분량의 도서를 완독할 수 있었습니다.도서 및 학습 자료의 특장점과 코딩자율학습단의 진행 방식을 정리해보고, 저의 소감으로 마무리하겠습니다. 학습 교재코딩 자율학습과 연계를 목적으로 책이 구성되어 있기 때문에, 학습단 활동과 교재 학습이 별개로 나뉘는 느낌이 없어서 좋습니다. 책의 내용도 학습단 참여 인원들의 수준에 맞게 쉽고 자세하게 설명되어 있어서 유용했습니다.스프링부트를 학습한게 처음이 아니어서 가볍게 학습하기도 좋았지만, 상세한 설명을 듣고나니 놓치고 있던 부분들도 새롭게 알게되고 정리할 수 있어서 큰 도움이 되었습니다. 15장을 학습하면서 정리했던 목차입니다. 한 챕터 ..
👉 문제링크 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr🔸 문제 분석 🔸문제는 쿼리 명령에 따라 n x m 격자판에서 이동하는 공의 시뮬레이션 설명이 주어진다.쿼리에 따라 이동했을 때, (x, y) 위치에 도착하는 시작 위치의 개수를 출력한다.🔸 문제 풀이 🔸n, m의 최대값은 1억이고, 쿼리의 개수는 20만이기 때문에 BFS, DFS 등으로 구현하면 시간 초과 or 메모리 초과가 난다.첫 번째 풀이 포인트는 '역방향 탐색'이다.모든 인덱스에서 쿼리를 돌려 (x, y)에 도착하는지 확인하는 것이 아니라,(x, y)부터 시작해 역으로 쿼리를 돌려 도..