목록Java (371)
기록방
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cw2eof/btrYeYvR4QD/anAtygz9feFlKIHBkhGYc0/img.png)
👉 문제링크 2630번: 색종이 만들기 첫째 줄에는 전체 종이의 한 변의 길이 N이 주어져 있다. N은 2, 4, 8, 16, 32, 64, 128 중 하나이다. 색종이의 각 가로줄의 정사각형칸들의 색이 윗줄부터 차례로 둘째 줄부터 마지막 줄까지 주어진다. www.acmicpc.net 🔸 문제 분석 🔸 N x N 크기의 정사각형 종이를 같은 색으로만 이루어진 정사각형으로 자를 때 최소 개수를 출력한다. 종이를 자르는 방법은 한 변의 길이를 절 반으로 하는 정사각형 4개를 만드는 것이다. 한 정사각형 범위가 모두 같은 색인지 체크하고, 같지 않다면 4등분으로 잘라 다시 색을 체크하는 재귀 메서드를 사용한다. 재귀 메서드의 입력 값은 한 변의 길이와 좌상단의 좌표이다. 🔸 코드 🔸 import java.ut..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/brcqAI/btrXWw1sSXq/sdqly7drfMj7jNGhtXwvMk/img.png)
👉 문제링크 7569번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N과 쌓아올려지는 상자의 수를 나타내는 H가 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M ≤ 100, 2 ≤ N ≤ 100, www.acmicpc.net 🔸 문제 분석 🔸 H x N x M 크기의 창고에 익거나 덜 익은 토마토가 들어있다. 익은 토마토는 상하좌우전후의 덜 익은 토마토를 다음 날 익게 한다. 빈 칸도 있다. 토마토가 모두 익을 때 까지 최소 며칠이 걸리는지 출력한다. 모두 익지 못하면 -1을 출력한다. BFS를 통해 익은 토마토 옆 덜 익은 토마토들이 모두 익을 때 까지 걸리는 날을 계산한다. 큐에서 방금 익은 토마토의 좌표를 꺼낸다. 꺼낸 토마토 주변의 덜 익은..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bHWE5R/btrXVx0KF8e/kkE0srnCyoi7J4BRUD7cv0/img.png)
🔷 직렬화(serialization) 란? 💡 serialization : JVM 메모리의 객체 데이터를 바이트 형태로 변환하는 기술 💡 deserialization : 직렬화된 바이트 형태의 데이터를 객체로 변환해서 JVM으로 상주시키는 기술 자바 시스템 내부에서 사용되는 객체를 외부의 자바 시스템에서도 사용할 수 있도록 바이트형태로 변환하는 기술과 바이트로 변환된 데이터를 다시 객체로 변환하는 기술을 아울러서 직렬화로 표현 객체 데이터를 영속화(Persistence) : 시스템이 종료되도 데이터가 남아있는 DB 등에 저장 객체 데이터 전송 : 객체 데이터를 네트워크로 전송해서 외부 시스템에서 그대로 사용 가능 🔷 자바 직렬화 사용 이유 🔸 다른 데이터 직렬화 종류 문자열 형태의 직렬화 방법 (API나..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/cHtb4i/btrXv3zezLs/SnB0C9iGTcVOpBcBK1jFd1/img.png)
👉 문제링크 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net 🔸 문제 분석 🔸 n x m 크기의 창고에 토마토가 놓여있다. 1 : 익은 토마토, 0 : 덜 익은 토마토, -1 : 빈 공간 익은 토마토는 하루가 지날 때 마다 상하좌우 덜 익은 토마토를 익게 만든다. 며칠이 지나야 토마토가 모두 익는지 출력한다. 모두 익지 못하면 -1 을 출력한다. 익은 토마토 주변에 익을 수 있는 토마토를 큐에 넣고 BFS을 실행한다. 며칠이 지나는지 확인해야 하므로 익을 예정인 토마토들은 같은 큐에 넣지 않고..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/dqgUMG/btrXnIo0Ono/w3KxSUjhsTRjqE25mQxZz1/img.png)
👉 문제링크 11478번: 서로 다른 부분 문자열의 개수 첫째 줄에 문자열 S가 주어진다. S는 알파벳 소문자로만 이루어져 있고, 길이는 1,000 이하이다. www.acmicpc.net 🔸 문제 분석 🔸 문자열을 입력받아 부분 문자열의 종류를 출력한다. 입력받은 문자열s를 1부터 s의 크기까지의 길이로 잘라 부분 문자열을 구한다. 문자열의 중복을 피해 저장하고, 개수를 출력한다. 🔸 코드 🔸 import java.util.HashSet; import java.util.Scanner; import java.util.Set; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); Stri..