백준 111

[백준 20055] 컨베이어 벨트 위의 로봇 (JAVA)

https://www.acmicpc.net/problem/20055 20055번: 컨베이어 벨트 위의 로봇 길이가 N인 컨베이어 벨트가 있고, 길이가 2N인 벨트가 이 컨베이어 벨트를 위아래로 감싸며 돌고 있다. 벨트는 길이 1 간격으로 2N개의 칸으로 나뉘어져 있으며, 각 칸에는 아래 그림과 같이 1부 www.acmicpc.net 회전할때 약빙행으로 먼저 옮겨줘야한다는 게 포인트였다. 2n-1 인덱스의 값은 temp로 저장해두고, 2n-2부터 0까지 for문을 돌려서 i값을 i+1에 넣게 한다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayLi..

Java 2023.06.09

[백준 23288] 주사위 굴리기2 (JAVA)

https://www.acmicpc.net/problem/23288 23288번: 주사위 굴리기 2 크기가 N×M인 지도가 존재한다. 지도의 오른쪽은 동쪽, 위쪽은 북쪽이다. 지도의 좌표는 (r, c)로 나타내며, r는 북쪽으로부터 떨어진 칸의 개수, c는 서쪽으로부터 떨어진 칸의 개수이다. 가장 왼 www.acmicpc.net 주사위 굴리기 1을 풀고 오면 간단히 해결 가능한 문제였다! 주사위 굴리기1에 bfs를 사용하면 된다!! 주사위 굴리기 1은 아래와 같다! 참고하세용 https://iheeeee6-6.tistory.com/123 [백준 14499] 주사위 굴리기 (JAVA) https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크..

Java 2023.06.08

[백준 14499] 주사위 굴리기 (JAVA)

https://www.acmicpc.net/problem/14499 14499번: 주사위 굴리기 첫째 줄에 지도의 세로 크기 N, 가로 크기 M (1 ≤ N, M ≤ 20), 주사위를 놓은 곳의 좌표 x, y(0 ≤ x ≤ N-1, 0 ≤ y ≤ M-1), 그리고 명령의 개수 K (1 ≤ K ≤ 1,000)가 주어진다. 둘째 줄부터 N개의 줄에 지 www.acmicpc.net 주사위를 굴렸을때의 주사위 면의 계산이 어려웠다 ㅠ 종이를 찢어서 주사위로 만들어서 해본 건 안비밀 ㅎ 주사위 int배열을 만들어서 2 4 1 3 5 6 위처럼, 인덱스 1= 상단, 2= 위, 3= 오른쪽, 4=왼쪽, 5=아래, 6= 바닥으로 한다. 초기화 값은 0으로 처리한다. import java.io.BufferedReader..

Java 2023.06.07

[백준 3190] 뱀 (JAVA)

https://www.acmicpc.net/problem/3190 3190번: 뱀 'Dummy' 라는 도스게임이 있다. 이 게임에는 뱀이 나와서 기어다니는데, 사과를 먹으면 뱀 길이가 늘어난다. 뱀이 이리저리 기어다니다가 벽 또는 자기자신의 몸과 부딪히면 게임이 끝난다. 게임 www.acmicpc.net 오타로 인해 시간이 오래걸렸던 문제였다...ㅠㅠㅠㅠ 오타 정말 조심하자.... map은 전체적인 영역을 나타내는 것으로, 사과 있는 곳은 1 뱀의 위치는 2 빈칸은 0이다. prevDir은 뱀이 이동한 방향을 넣어준다. 큐를 사용해서 선입선출로, 사과가 없는 영역으로 갈 경우에 prevDir을 poll하여 꼬리를 이동시킨다. dx,dy는 방향을 나타내는 배열로, 순서대로 오른쪽, 아래쪽, 왼쪽, 위쪽 이..

Java 2023.06.06

[백준 16234] 인구 이동 (JAVA)

https://www.acmicpc.net/problem/16234 16234번: 인구 이동 N×N크기의 땅이 있고, 땅은 1×1개의 칸으로 나누어져 있다. 각각의 땅에는 나라가 하나씩 존재하며, r행 c열에 있는 나라에는 A[r][c]명이 살고 있다. 인접한 나라 사이에는 국경선이 존재한다. 모 www.acmicpc.net bfs를 이용하여 해결할 수 있었다! 방문 표시 배열과, 연합 국가 리스트를 사용하여 0,0부터 포문을 돌면서 방문한 적이 없는 국가에 대한 bfs를 실행한다. 인접한 국가와 l = n || yy >= n || visited[xx][yy]) continue; int dist = Math.abs(arr[node.x][node.y] - arr[xx][yy]); if (dist >= l ..

Java 2023.06.02

[백준 12845] 모두의 마블 (JAVA)

https://www.acmicpc.net/problem/12845 12845번: 모두의 마블 영관이는 게임을 좋아한다. 별의별 게임을 다 하지만 그 중에서 제일 좋아하는 게임은 모두의 마블이다. 어김없이 오늘도 영관이는 학교 가는 버스에서 캐릭터 합성 이벤트를 참여했다. 이번 이 www.acmicpc.net 요즘 백준을 아무리 풀어도 실력이 늘지 않는 느낌을 받았다. 오픈 채팅방에 고민을 털었도니, 어떤 분께서 그리디 알고리즘을 많이 풀어보라고 조언해주셨다! 그래서 그리디 알고리즘만 n일째 패는 중 ㅎㅎ 그리디 알고리즘이 딱히 정해진 틀은 없는 거 같아서 문제마다 좀 새롭다.. 하지만~ 이 문제는 간단한 실버3 문제였다! 가장 큰 수를 기준으로 더해가면 해결된다. import java.io.Buffer..

Java 2023.06.01

[백준 2110] 공유기 설치 (JAVA)

https://www.acmicpc.net/problem/2110 2110번: 공유기 설치 첫째 줄에 집의 개수 N (2 ≤ N ≤ 200,000)과 공유기의 개수 C (2 ≤ C ≤ N)이 하나 이상의 빈 칸을 사이에 두고 주어진다. 둘째 줄부터 N개의 줄에는 집의 좌표를 나타내는 xi (0 ≤ xi ≤ 1,000,000,000)가 www.acmicpc.net 이 문제는 2달전에 풀었던 문제인데, 오픈 채팅방에서 어떤 분이 아침부터 풀으셨다길래 한번 더 풀어보았다! 2달전의 코드와 비교해보니 더 간단하게 풀어버려서 은근 뿌듯하네 ㅎㅎ,, 제발 실력이 더 좋아져라 ㅠㅠㅠ!! 이분 탐색으로 최소 거리의 값을 mid로 잡고 탐색한다. mid값보다 크거나 같은 거리일 경우에는 공유기 설치 카운트를 +1한다. ..

Java 2023.06.01

[백준 9017] 크로스 컨트리 (JAVA)

https://www.acmicpc.net/problem/9017 9017번: 크로스 컨트리 입력 데이터는 표준입력을 사용한다. 입력은 T 개의 테스트 케이스로 주어진다. 입력 파일의 첫 번째 줄에 테스트 케이스의 수를 나타내는 정수 T 가 주어진다. 두 번째 줄부터는 두 줄에 하나의 www.acmicpc.net 6명의 선수가 없는 팀은 탈락인 부분이 중요하다. 탈락한 선수들은 제외하고 점수를 매겨야 한다! import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.ArrayList; import java.util.Collections; import java.util...

Java 2023.05.31

[백준 1508] 레이스 (JAVA)

https://www.acmicpc.net/problem/1508 1508번: 레이스 첫째 줄에 N, M, K가 주어진다. N은 1,000,000보다 작거나 같은 자연수이고, M은 K보다 작거나 같다. 또, K는 2보다 크거나 같고, 50보다 작거나 같다. 둘째 줄에 심판이 있을 수 있는 K개의 위치가 주어 www.acmicpc.net 0~n까지 이분탐색하여 mid 값을 심판 사이의 최대 거리값이라고 생각하여 탐색한다! mid값보다 크거나 같은 거리라면 "1" , 작은 거리라면 "0" 을 하고, 그렇게 세워진 심판의 수가 m과 같다면 break; k자리 모두 채우기 위해 빈자리는 0으로 세팅! 따라서, 세워진 심판 수가 m과 같으면 거리 값을 더 크게 하기 위해서 start=mid+1; 심판을 다 못세웠..

Java 2023.05.31

[백준 8980] 택배 (JAVA)

https://www.acmicpc.net/problem/8980 8980번: 택배 입력의 첫 줄은 마을 수 N과 트럭의 용량 C가 빈칸을 사이에 두고 주어진다. N은 2이상 2,000이하 정수이고, C는 1이상 10,000이하 정수이다. 다음 줄에, 보내는 박스 정보의 개수 M이 주어진다. M은 1이 www.acmicpc.net 처음에는 출발지점을 오름차순으로 해서 15점 밖에 못받았다.. 다시 확인해보니, 도착지점이 한참 멀었는데 트럭에 실었을 경우에는 비효율적인 것으로 알게 되었다. 따라서 도착지점으로 오름차순 정렬하여 해결할 수 있었다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReade..

Java 2023.05.31