시뮬레이션
![[JAVA] 코드트리 : 2개의 사탕](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbEXz4w%2FbtrNwDqQw3I%2FEWHP9Nl8nkhmYqv91jQ9Xk%2Fimg.jpg)
[JAVA] 코드트리 : 2개의 사탕
문제 코드트리 국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요. www.codetree.ai 문제가 보이지 않으면 https://www.codetree.ai/frequent-problems 여기서 찾아볼 수 있다. 이번 문제는 따로 코드를 모듈화 하지 않고 일자로 나열해서 작성해서 가독성이 매우 좋지 않지만 코드 트리에서 자바 풀이를 따로 제공하지 않아 도움이 될까 하여 업로드한다. 해결방법 옛날에 필통으로 하던 구슬 미로 찾기 게임이 생각나는 문제였다. 구슬 대신 사탕을 기울여서 EXIT라고 적힌 밖으로 빨간색 사탕만 빼내야하는데 밖으로 빼내기 위한 최소 횟수를 찾는 문제이다. 전형적인 시뮬레이션 문제라고 할 수 있는데 시뮬레이..
[JAVA] 백준 16567 : 바이너리 왕국
문제 16567번: 바이너리 왕국 첫째 줄에 바이너리 길의 칸의 개수 N, 시련의 개수 M이 주어진다. (1 ≤ N, M ≤ 1,000,000) 둘째 줄에 N개의 현재 바이너리 길의 상태가 주어진다. 그다음 M개의 줄에 걸쳐서 시련이 주어진다. 이때 0 www.acmicpc.net 해결 방법 간단한 문제인데 조건을 빼먹어서 오래 걸렸습니다. 처음에 바닥의 상태가 주어질 때 연속으로 더러운지 아닌지 확인하면서 카운트를 증가시켜줘야합니다. 다음에 M개의 명령이 주어질 때 0의 경우일 때는 카운트를 출력하고 1의 경우일 때는 총 4가지를 생각해야합니다. 1. index가 0일 때 자신의 다음 칸이 깨끗하다면 카운트를 1증가 2. index가 마지막일 때 자신의 이전 칸이 깨끗하다면 카운트를 1증가 3. 그 외..
![[JAVA] 행렬 테두리 회전하기](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdn%2FbZpEKT%2Fbtq3XsmUBT3%2FLBJ1KfBfDnW5Fnw2k9Rs81%2Fimg.png)
[JAVA] 행렬 테두리 회전하기
문제 코딩테스트 연습 - 행렬 테두리 회전하기 6 6 [[2,2,5,4],[3,3,6,6],[5,1,6,3]] [8, 10, 25] 3 3 [[1,1,2,2],[1,2,2,3],[2,1,3,2],[2,2,3,3]] [1, 1, 5, 3] programmers.co.kr 해결 방법 어려운 문제인가 했는데, 글에 적힌대로 구현하니 작동이 되었다. 그래서 구현은 문제에서 제시한 가로, 세로 크기만큼 배열을 생성한 뒤에 숫자를 입력해주고, 그림의 1, 2, 3, 4번 순서대로 회전하게끔 반복문을 통해 구현했다. 그리고 최솟값을 찾을 수 있게 min 변수를 게속 체크하면서 확인하였다. 1번은 y값을 증가시켜 y2와 일치하면 멈춰주고, 2번은 x값을 증가시켜 x2와 일치하면 멈춰주었다. 3번은 y값을 감소시켜 y1..
[JAVA] 백준 8972 : 미친 아두이노
문제 8972번: 미친 아두이노 요즘 종수는 아두이노를 이용해 "Robots"이라는 게임을 만들었다. 종수는 아두이노 한대를 조정하며, 미친 아두이노를 피해다녀야 한다. 미친 아두이노는 종수의 아두이노를 향해 점점 다가온다. www.acmicpc.net 해결 방법 다 풀고 나서 보니 BFS 방법을 이용해서 푸신 분들도 있었다. 그 분들에 비하면 내 코드가 속도가 느리긴 하지만, 이런 코드도 있다 정도로 봐주면 좋겠다. 문제의 1~5번을 순서대로 구현했고, 방향은 dx, dy 배열을 통해 입력해두었다. 입력의 젤 마지막에 종수가 움직이는 방향이 주어지는데, 주어질 때마다 moveI 함수를 실행시켜 전체 맵을 변경시켜주었다. moveI 함수는 처음에 입력받은 값에 따라 종수 아두이노를 움직이고, 종수 아두이..
[JAVA] 백준 13335 : 트럭
문제 13335번: 트럭 입력 데이터는 표준입력을 사용한다. 입력은 두 줄로 이루어진다. 입력의 첫 번째 줄에는 세 개의 정수 n (1 ≤ n ≤ 1,000) , w (1 ≤ w ≤ 100) and L (10 ≤ L ≤ 1,000)이 주어지는데, n은 다리를 건너는 트 www.acmicpc.net 해결 방법 처음엔 큐를 사용해서 구현을 하려다가 그냥 리스트로 구현을 해도 무관해보여서 리스트로 구현을 했다. Truck 클래스를 통해서 무게와 다리에 머문 시간 값을 가질 수 있게 해주었고, 다리에서 머문 시간이 w와 동일하면 리스트에서 제거해주는 방식을 사용했다. 리스트에서 값을 제거하면 index 값이 한 칸씩 앞으로 당겨지기 때문에 i--를 통해서 맞추어주었고, 다음 순서의 트럭이 어떤 트럭인지 알기위해..