전체 글 136

[백준 17266] 어두운 굴다리 (JAVA)

https://www.acmicpc.net/problem/17266 17266번: 어두운 굴다리 인하대학교 후문 뒤쪽에는 어두운 굴다리가 있다. 겁쟁이 상빈이는 길이 조금이라도 어둡다면 가지 않는다. 따라서 굴다리로 가면 최단거리로 집까지 갈수 있지만, 굴다리는 어둡기 때문에 빙 www.acmicpc.net 이분탐색으로 해결해야하는 문제였다.. start =1 , end=n으로 설정하여 mid값을 돌리면서 높이값을 mid로 했을때 모든 거리를 비추는지 확인한다! 모두 비추면 end값을 mid-1로 해준다. 그렇게 해서 최소의 높이 값을 찾는다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade..

Java 2023.04.20

[백준 9205] 맥주 마시면서 걸어가기 (JAVA)

https://www.acmicpc.net/problem/9205 9205번: 맥주 마시면서 걸어가기 송도에 사는 상근이와 친구들은 송도에서 열리는 펜타포트 락 페스티벌에 가려고 한다. 올해는 맥주를 마시면서 걸어가기로 했다. 출발은 상근이네 집에서 하고, 맥주 한 박스를 들고 출발한다. www.acmicpc.net bfs를 사용하여 해결 할 수 있는 문제이다! 맥주는 max 20개로 최대한 많이 갈 수 있는 거리는 1000이다. 편의점에 도착하면 맥주를 20개 다 리필 가능하기 때문에, 현위치에서 1000까지의 거리 안에 갈 수 있는 편의점이 있는지 확인하고, 이미 간 적이 있는 곳이 아니라면 큐에 넣어서 현위치를 변경한다! 그렇게 현위치에서 축제까지의 거리가 1000이하라면 happy ~~~! imp..

Java 2023.04.20

[백준 14503] 로봇 청소기 (JAVA)

https://www.acmicpc.net/problem/14503 14503번: 로봇 청소기 첫째 줄에 방의 크기 $N$과 $M$이 입력된다. $(3 \le N, M \le 50)$ 둘째 줄에 처음에 로봇 청소기가 있는 칸의 좌표 $(r, c)$와 처음에 로봇 청소기가 바라보는 방향 $d$가 입력된다. $d$가 $0$인 경우 북쪽 www.acmicpc.net 삼성 코테가 잠시 생각나는 문제였다,, 삼성 문제들에 비해선 매우 간단한 문제지만 반시계 방향 회전이라는 말과 친절한 설명에 잠심 스쳐지나갔다 ㅠㅠ 문제 설명대로 구현만 하면 간단하게 해결 가능한 문제였다! 문제 길이에 겁 먹지 맙시당 ㅎㅎ import java.io.BufferedReader; import java.io.IOException; i..

Java 2023.04.19

[백준 2468] 안전 영역 (JAVA)

https://www.acmicpc.net/problem/2468 2468번: 안전 영역 재난방재청에서는 많은 비가 내리는 장마철에 대비해서 다음과 같은 일을 계획하고 있다. 먼저 어떤 지역의 높이 정보를 파악한다. 그 다음에 그 지역에 많은 비가 내렸을 때 물에 잠기지 않는 www.acmicpc.net 처음에 문제를 잘못 이해해서 힘들었다.. 안전한 영역의 뭉탱이를 구하는 문제로, 비가 0 ~ 최대값까지 내렸을때의 안전 영역 최대 갯수를 구한다! (필자는 최소값도 구하여 확인했었으나, 비가 안왔을때의 가정도 있다는 거!!!!!!) 인접한 구역에 대한 방문 처리를 한 후, 1을 리턴한다. (뭉탱이이기에 1 리턴) 그렇게 count를 계산하여 최대 갯수를 구한다~ import java.io.Buffered..

Java 2023.04.19

[백준 2410] 2의 멱수의 합 (JAVA)

https://www.acmicpc.net/problem/2410 2410번: 2의 멱수의 합 첫째 줄에 경우의 수를 출력한다. 답이 커질 수 있으므로 1,000,000,000으로 나눈 나머지를 출력한다. www.acmicpc.net N=1 -> 1 N=2 -> 1+1, 2 N=3 -> 1+1+1, 2+1 N=4 -> 1+1+1+1, 2+1+1, 2+2, 4 N=5 -> 1+1+1+1+1, 2+1+1+1, 2+2+1, 4+1 ... 홀수이면 이전 숫자와 동일한 갯수이고, 짝수이면 이전 숫자의 갯수 + n/2 숫자의 갯수 이다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import ..

Java 2023.04.18

[백준 1965] 상자넣기 (JAVA)

https://www.acmicpc.net/problem/1965 1965번: 상자넣기 정육면체 모양의 상자가 일렬로 늘어서 있다. 상자마다 크기가 주어져 있는데, 앞에 있는 상자의 크기가 뒤에 있는 상자의 크기보다 작으면, 앞에 있는 상자를 뒤에 있는 상자 안에 넣을 수가 www.acmicpc.net dp를 사용하여 이중 포문을 돌려서 자신의 번호보다 앞에 있는 숫자 중에서 자신보다 작은 숫자의 개수를 dp에 넣는다. 이때, 그 작은 숫자의 dp값 +1과 내 번호의 현재 dp값 중에 더 큰 값을 dp에 넣는다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.uti..

Java 2023.04.18

[백준 9465] 스티커 (JAVA)

https://www.acmicpc.net/problem/9465 9465번: 스티커 첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스의 첫째 줄에는 n (1 ≤ n ≤ 100,000)이 주어진다. 다음 두 줄에는 n개의 정수가 주어지며, 각 정수는 그 위치에 해당하는 스티커의 www.acmicpc.net 점화식을 생각해내지 못해서 어려웠던 문제였다ㅠㅠ 1 2 3 4 5 6 7 8 만약 위와 같은 스티커 배열이 있다면, 7번은 1번과 2번 중 더 큰 값을 선택하면 된다! 마찬가지로 3번은 5번과 6번 중 더 큰 값을 선택하면 된다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRea..

Java 2023.04.17

[백준 1890] 점프 (JAVA)

https://www.acmicpc.net/problem/1890 1890번: 점프 첫째 줄에 게임 판의 크기 N (4 ≤ N ≤ 100)이 주어진다. 그 다음 N개 줄에는 각 칸에 적혀져 있는 수가 N개씩 주어진다. 칸에 적혀있는 수는 0보다 크거나 같고, 9보다 작거나 같은 정수이며, 가장 www.acmicpc.net 처음에는 재귀함수를 썼더니 시간초과가 났다.. 포문을 돌려서 dp의 값을 더해준다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.StringTokenizer; public class Main { static int arr[][]; sta..

Java 2023.04.17

[JAVA] BufferedReader 는 런타임에러, Scanner는 정답인 이유

아마 입력 txt가 유닉스 서버에서 윈도우에서 생성된 txt 일 것이라고 한다!! 유닉스(리눅스) 텍스트 파일의 줄바꿈은 '\n'(Line Feed, LF)이다. 윈도우는 '\r'(Carrage Return, CR)과 '\n'를 이어서 표시한다. (CRLF라고 부름) 유닉스 서버에 윈도우즈 텍스트 파일을 그대로 올리면, 읽을 때 '\r'이 하나 더 붙은 걸로 해석된다. '\n'을 이용해 읽는 단위를 결정하고, '\r'은 텍스트로 생각하고 읽어버린다. 이때, 이걸 BufferedReader가 정수형으로 바꿀때 에러가 난다. Scanner nextInt()는 스페이스와 '\r' 사이에 숫자에 해당하는 부분만 처리하기 때문에 문제가 되지 않는다.!

Java 2023.04.16