반응형

분류 전체보기 318

[백준]JAVA - 16236번: 아기 상어

https://www.acmicpc.net/problem/16236 16236번: 아기 상어 N×N 크기의 공간에 물고기 M마리와 아기 상어 1마리가 있다. 공간은 1×1 크기의 정사각형 칸으로 나누어져 있다. 한 칸에는 물고기가 최대 1마리 존재한다. 아기 상어와 물고기는 모두 크기를 가 www.acmicpc.net 풀이 조건이 많아서 생각할 게 많았던 bfs 문제로 알고리즘 진행 과정을 보면서 설명하겠다. 1. 입력받은 값 중에 '9'는 아기 상어의 위치이며 아기 상어는 총 1마리만 존재한다. 1) 아기 상어의 x, y 좌표를 저장함 (shark_x, shark_y) 2) 저장 후에 아기 상어의 위치는 0으로 변경한다. (해당 위치도 탐색 과정에 포함되어야함) 3) 물고기 위치를 담을 수 있는 배열 ..

[백준]JAVA - 11399번: ATM

https://www.acmicpc.net/problem/11399 11399번: ATM 첫째 줄에 사람의 수 N(1 ≤ N ≤ 1,000)이 주어진다. 둘째 줄에는 각 사람이 돈을 인출하는데 걸리는 시간 Pi가 주어진다. (1 ≤ Pi ≤ 1,000) www.acmicpc.net 풀이 이번 문제는 정렬 후에 간단한 식만 만들어주면 해결할 수 있는 문제다. 각 사람이 돈을 인출하는데 필요한 시간의 합의 최솟값을 구하는 문제로 i 번째 사람이 돈을 인출하는데 걸리는 시간은 i-1 번째 사람이 돈을 인출하는데 걸리는 시간 + 이전까지의 대기 시간이다. 이전까지의 대기 시간이 짧을수록 필요한 시간이 줄어들 것이다. 즉, i 번째 사람이 돈을 인출하는데 걸리는 시간이 짧은 순서로 정렬하면 된다. 오름차순 정렬이..

[백준]JAVA - 1260번: DFS와 BFS

https://www.acmicpc.net/problem/1260 1260번: DFS와 BFS 첫째 줄에 정점의 개수 N(1 ≤ N ≤ 1,000), 간선의 개수 M(1 ≤ M ≤ 10,000), 탐색을 시작할 정점의 번호 V가 주어진다. 다음 M개의 줄에는 간선이 연결하는 두 정점의 번호가 주어진다. 어떤 두 정점 사 www.acmicpc.net import java.io.*; import java.util.*; public class Main { static int[][] node; static boolean[][] visited; static int N; static String result_dfs = ""; static String result_bfs = ""; public static void ..

[백준]JAVA - 1520번: 내리막 길

https://www.acmicpc.net/problem/1520 1520번: 내리막 길 첫째 줄에는 지도의 세로의 크기 M과 가로의 크기 N이 빈칸을 사이에 두고 주어진다. 이어 다음 M개 줄에 걸쳐 한 줄에 N개씩 위에서부터 차례로 각 지점의 높이가 빈 칸을 사이에 두고 주어진다. www.acmicpc.net 풀이 이 문제는 dp를 사용하지 않고 bfs와 dfs를 사용하게 되면 메모리 초과가 발생한다. 그렇다면 dp를 활용해서 메모이제이션을 해주어야한다. 예제 1번에서 2, 3번째 방법을 그림으로 보면 메모이제이션을 쉽게 이해할 수 있다. 그림을 보면 알 수 있듯이 20부터 도착지까지 갈 수 있는 방법이 동일하다. 그렇기 때문에 왼쪽 그림처럼 먼저 dfs 탐색을 진행했다면 오른쪽 그림의 경로에선 20..

자바 파일 복사하는 4가지 방법

안녕하세요. 두부입니다. 이번엔 자바로 파일을 복사하는 방법에 대해서 포스팅해보려고합니다. 자바로 파일을 복사하는 4가지 방법을 알려드릴텐데 아래 방식만 알아도 파일을 복사하는데는 큰 어려움이 없을 것이라고 생각합니다. 현재 C:/test 경로에 excel_test.cell 이라는 파일이 있습니다. 이 파일을 4가지 방법으로 복사해보겠습니다. 자바로 파일 복사하는 방법 1. FileInputStream / FileOutputStream import java.io.FileInputStream; import java.io.FileOutputStream; import java.io.IOException; public class Main { public static void main(String[] args) ..

[백준]JAVA - 12865번: 평범한 배낭

https://www.acmicpc.net/problem/12865 12865번: 평범한 배낭 첫 줄에 물품의 수 N(1 ≤ N ≤ 100)과 준서가 버틸 수 있는 무게 K(1 ≤ K ≤ 100,000)가 주어진다. 두 번째 줄부터 N개의 줄에 거쳐 각 물건의 무게 W(1 ≤ W ≤ 100,000)와 해당 물건의 가치 V(0 ≤ V ≤ 1,000) www.acmicpc.net 풀이 한 달 후면 국가의 부름으로 잡혀가는 준서가 여행을 간다고 한다. 준서가 견딜 수 있는 무게 내에서 최고의 가치를 찾는 문제이므로 dp 문제이다. dp문제는 점화식만 찾으면 쉽게 해결할 수 있는 알고리즘으로 개인적인 팁을 주자면 필자는 dp 문제를 보면 공책에다가 표를 그려서 완전 탐색을 해본다. 물론 표를 그려본다고 쉽게 발..

[백준]JAVA - 14501번: 퇴사

https://www.acmicpc.net/problem/14501 14501번: 퇴사 첫째 줄에 백준이가 얻을 수 있는 최대 이익을 출력한다. www.acmicpc.net 풀이 이번 문제는 dp문제로 제목이 정말 맘에 든다. 퇴사까지 N일을 앞두고 있는 백준이에게 상담 시간과 금액이 주어졌다. 퇴사까지 최대한 많은 상담 비용을 찾는 문제이다. 이 문제에는 한 가지 경우의 수가 존재한다. 예제 1번을 살펴보면 다음과 같다. 1일에 예약된 상담의 시간은 3일이다. 즉, 4일차가 되는 날에 상담 비용 10을 얻을 수 있다. 2일에 예약된 상담의 시간은 5일이다. 즉, 7일차가 되는 날에 상담 비용 20을 얻을 수 있다. 3일에 예약된 상담의 시간은 1일이다. 즉, 4일차가 되는 날에 상담 비용 10을 얻을 ..

[백준]JAVA - 1149번: RGB거리

https://www.acmicpc.net/problem/1149 1149번: RGB거리 첫째 줄에 집의 수 N(2 ≤ N ≤ 1,000)이 주어진다. 둘째 줄부터 N개의 줄에는 각 집을 빨강, 초록, 파랑으로 칠하는 비용이 1번 집부터 한 줄에 하나씩 주어진다. 집을 칠하는 비용은 1,000보다 작거나 www.acmicpc.net 풀이 이번 문제는 dp 문제로 설명이 너무 어렵게 되어있다. 간단하게 설명하자면 문제의 조건은 "인접한 집끼리 색이 겹치면 안된다."이다. 모든 dp문제는 점화식만 찾으면 쉽게 해결할 수 있다. 1번 예제를 보면서 점화식을 찾아보겠다. 1번 예제에서 최소값만 찾아서 누적합을 하면 다음과 같다. 최소값만 찾아서 진행했더니 문제의 조건 "인접한 집끼리 색이 겹치면 안된다." 를 ..

엑셀 초간단 긴 순번 입력하는 방법

안녕하세요. 두부입니다. 오늘은 순서대로 증가하는 번호를 입력하는 방법에 대해서 알아보려고합니다. 대부분의 사용자들이 1, 2, 3까지 입력 후 셀의 우측 하단에 마우스를 가져다대고 드래그를 하는 방식으로 순번을 작성합니다. 이렇게 순번을 작성할 경우 적은 데이터에선 가능하겠지만 1000번, 10000번까지 작성해야할 경우에는 이 방법은 효율적이지 않습니다. 그렇다면 어떻게 해야할까요? 순번 입력하는 방법 1. 비어있는 셀(A1)에 시작값(1)을 입력한 후에 셀을 선택한 상태로 [홈]탭 > 채우기 > 계열을 선택한다. 2. 방향과 단계값 종료값을 입력 후 확인 버튼 클릭한다. 필자는 A열에 1번부터 300번까지 입력하는 것으로 설정했다. 3. 완료

ITQ/엑셀 2022.10.12

Node.js 와 Java Spring boot 의 차이점

안녕하세요. 두부입니다. 서버 애플리케이션을 제작할 때 빠질 수 없는 프레임워크 Node.js 와 Spring boot의 차이점에 대해서 작성해보려고합니다. Node.Js JavaScript 언어로 실행될 수 있도록 해주는 프로그램 환경 싱글 스레드, Non-blocking I/O를 처리를 기반으로 빠른 속도를 가짐 CPU 대기 시간을 최소화 할 수 있음 CPU 부하가 적고 많은 커넥션을 동시에 처리해야하는 구조에 적합 C++로 개발된 V8 Javascript Engine 기반으로 확장성이 좋음 프론트엔드 개발자의 진입 장벽이 낮음 서비스 로직이 복잡해지거나 업무 난이도가 높을 경우, Type Safe를 하지 못하는 Javascript 특성상 런타임에러가 수없이 발생할 수 있음 비동기 제어가 어려움 ✅ ..

반응형