Java 119

[백준 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

[백준 11049] 행렬 곱셈 순서 (JAVA)

https://www.acmicpc.net/problem/11049 11049번: 행렬 곱셈 순서 첫째 줄에 입력으로 주어진 행렬을 곱하는데 필요한 곱셈 연산의 최솟값을 출력한다. 정답은 231-1 보다 작거나 같은 자연수이다. 또한, 최악의 순서로 연산해도 연산 횟수가 231-1보다 작거나 같 www.acmicpc.net 오랜만에 dp문제를 풀게 되어서인지 많이 헤맸다...ㅜㅠㅠ 간단해보이면서도 생각해내기 어려운 문제였다. dp[0][n-1] 은 0~n-1까지의 행렬의 곱셈값을 넣은 것을 뜻한다. 포문을 돌면서 아래의 과정으로 계산을 한다. dp[i][i+k] = Math.min(dp[i][i+k], dp[i][j]+dp[j+1][i+k] + arr[i][0]*arr[j][1]*arr[i+k][1]);..

Java 2023.04.13

[백준 1717] 집합의 표현 (JAVA)

https://www.acmicpc.net/problem/1717 1717번: 집합의 표현 초기에 $n+1$개의 집합 $\{0\}, \{1\}, \{2\}, \dots , \{n\}$이 있다. 여기에 합집합 연산과, 두 원소가 같은 집합에 포함되어 있는지를 확인하는 연산을 수행하려고 한다. 집합을 표현하는 프로그램을 작 www.acmicpc.net 이 문제는 유니온 파인드를 사용하면 쉽게 해결할 수 있었다! https://brenden.tistory.com/33 [알고리즘] 유니온 파인드 (Union-Find) 유니온 파인드(Union-Find) ① 유니온 파인드란? ▷ 대표적 그래프 알고리즘으로 '합집합 찾기'라는 의미를 가지고 있습니다.▷ 상호 배타적 집합(Disjoint-set)이라고도 합니다.▷ ..

Java 2023.04.11