본문 바로가기

컴쟁이의 알고리즘

백준 2178 - 미로 탐색 문제 https://www.acmicpc.net/problem/2178 2178번: 미로 탐색 첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다. 각각의 수들은 붙어서 입력으로 주어진다. www.acmicpc.net 코드 import java.io.BufferedReader; import java.util.Arrays; import java.util.StringTokenizer; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; public class Main { private static int N, M, result = Inte.. 더보기
백준 2468 - 안전 영역 문제 https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 코드 import java.util.StringTokenizer; import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.Queue; import java.util.ArrayDeque; public class Main { // 상, 하, 좌, 우 private static int[] dy = {0, 0, -1.. 더보기
정올 2577 - 회전초밥 고! jungol.co.kr/bbs/board.php?bo_table=pbank&wr_id=1838&sca=99&sfl=wr_hit&stx=2577 JUNGOL www.jungol.co.kr 오늘 처음보는 문제 유형을 풀었기에 포스팅합니다. 바로바로 '슬라이딩 윈도우'라는 기법으로 풀어야하는 문제입니다. 제가 생각하는 슬라이딩 윈도우는 특정 크기의 array를 옮기면서 메모리를 아끼고 수행 속도도 O(N)으로 컴팩트한 알고리즘이었지만, 이번 문제를 풀면서 그런 제한된 환경에 국한되지 않고 한칸씩 이동할 때마다 특정 array 등을 갱신하는 것 또한 슬라이딩 윈도우 기법이라는 것을 알았습니다. 코드는 아래와 같습니다. import java.io.BufferedReader; import java.io.InputS.. 더보기
[Java] Call by Value 와 Call by Reference Java 뿐만 아니라 C나 Python에서도 적용되는 이야기입니다. 저는 컴퓨터공학과를 나왔는데 1학년 때 바로 배운 언어가 C언어였습니다. 그런데 제가 군대를 다녀오는 사이에 1학년 때 배우는 언어가 C++로 바뀌어있더랍니다. 살짝 세대 차이를 느꼈지요. 각설하고 C에서 배우는 중요 개념 중 하나가 Call by Value와 Call by Reference입니다. 이게 과연 무엇일까요? 이 두 개념은 함수에 parameter를 넘길 때 어떻게 넘어가는지 형태를 나타내는 개념입니다. Call by Value는 그 값이 복사되어 넘어간다는 것이고, Call by Reference는 C로 따지면 해당 배열 등을 가리키고 있는 포인터의 주소값이 넘어가는 것입니다. 그래서 Call by Value로 넘어가는 변.. 더보기
백준 7576 - 토마토 www.acmicpc.net/problem/7576 7576번: 토마토 첫 줄에는 상자의 크기를 나타내는 두 정수 M,N이 주어진다. M은 상자의 가로 칸의 수, N은 상자의 세로 칸의 수를 나타낸다. 단, 2 ≤ M,N ≤ 1,000 이다. 둘째 줄부터는 하나의 상자에 저장된 토마토 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Queue; import java.util.StringTokenizer; public class Main_BJ_7576_토마토 { //상, 하, 좌, 우 private static int[] dy =.. 더보기
백준 17144 - 미세먼지 안녕! www.acmicpc.net/problem/17144 17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net import java.io.BufferedReader; import java.io.InputStreamReader; import java.util.ArrayDeque; import java.util.Arrays; import java.util.Queue; import java.util.StringTokenizer; public class Main_BJ_17144_미세먼지안녕 { //상, 하, 좌, 우 priv.. 더보기
CommunicationsException: Communications link failure 발생할 때 오늘 듣는 수업 중에 Tomcat을 사용해 진행 중이던 JSP 수업에 MySQL을 연동하여 DB를 사용해보는 과제가 있었습니다. 그런데 분명히 구글링도 해가며 적혀있는대로 했는데도 오류가 발생하기 시작했습니다. MySQL에서 DB와 table도 만들고, Class 파일 만들어서 url, id, password 제대로 써서 Connection 만들고, 오류도 없고 등등 분명히 잘못한 부분이 없는데도 CommunicationsException: Communications link failure 에러에 페이지에서는 500번 에러가 둥둥 떠다니기 시작했습니다. 그래서 다시 구글링을 시작해서 Driver를 불러오는 Class.forName()을 제대로 맞춰주고, Driver파일도 받아서 Tomcat/lib에 넣어.. 더보기
백준 알고리즘 - 1600 말이 되고픈 원숭이 www.acmicpc.net/problem/1600 1600번: 말이 되고픈 원숭이 첫째 줄에 정수 K가 주어진다. 둘째 줄에 격자판의 가로길이 W, 세로길이 H가 주어진다. 그 다음 H줄에 걸쳐 W개의 숫자가 주어지는데, 0은 아무것도 없는 평지, 1은 장애물을 뜻한다. 장애물이 있 www.acmicpc.net 백준 알고리즘의 1600번 문제 말이 되고픈 원숭이입니다. 어제 포스팅 했던 '벽 부수고 이동하기1'과 비슷한 문제입니다. comlib.tistory.com/17 백준 알고리즘 2206 - 벽 부수고 이동하기1 www.acmicpc.net/problem/2206 2206번: 벽 부수고 이동하기 N×M의 행렬로 표현되는 맵이 있다. 맵에서 0은 이동할 수 있는 곳을 나타내고, 1은 이동할 수 없는.. 더보기