생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q3000/Q3085.java 사탕들이 주어진다. 인접한 사탕을 교환했을 때, 사탕이 연이어서 있는 최대 개수를 출력하시오. 처음 생각완전 탐색 문제이다. 배열 탐색을 왼쪽 위에서부터 한다고 생각하면, 각 좌표별로 오른쪽과 아래쪽으로만 사탕 교환을 해준다면 전부 바꾼거랑 같기 때문에 사탕별로 상 하 좌 우를 전부 바꿔주지 않아도 된다. 다음 생각사탕을 교환할 때 범위를 넘지 않도록 행의 교환일경우 x-1까지 열의 교환일 경우 y-1 까지만 교환을 하도록 해주었다. 다다음 생각먼저 행(아래쪽)을 바꾸고나서 배열을 체크해서 사탕이 연속된 가장 큰 개수를 찾아주었다. 그 다음에 열(오른쪽..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/q2000/Q2231.java N이 주어졌을 때 N을 만들 수 있는 M의 최소값을 출력하여라. 없다면 0을 출력하여라 만드는 법은 M의 각자리 수의 숫자 +M이다. 123 이라면 123+1+2+3 을 N으로 주어진다. 처음 생각각 자리수의 숫자를 더해야하므로 String으로 각 index를 뽑아오면 좋겠다고 생각하였다. N을 만들 수 있는 M의 최소값을 출력해야하기 때문에 1부터 N-1까지 반복문을 돌렸다. 다음 생각반복문을 돌다 해당하는 수가 있다면 그 수를 출력한 후, return을 통해 메인 메소드를 종료시켰다. 없을 경우 즉, 반복문이 다 돌았다면 0을 출력하고 끝낸다. 방안..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q13460.java 구슬 두개 R, B 그리고 구슬이 다닐수 있는 통로 '.'가 주어진다. 구슬이 다닐 수 없는 통로는 '#'로 주어지며, 맵의 외곽은 '#'로 이루어져있다. 구슬이 빠질 수 있는 구멍은 'O'로 이루어져있다. 구슬은 맵을 상 하 좌 우로 기울여서 이동이 가능하다. 맵을 기울여 구슬들을 이동시킬 때, R구슬만 구멍에 빠질 때 까지 몇 번을 기울였는지 최소값을 출력하여라. R 구슬이 빠질 때 B구슬 빠진 경우는 실패다. 최대 10번까지 기울일 수 있다. 불가능한 경우 -1을 출력한다. 처음 생각어떻게 기울였을 때, 구슬을 빼낼 수 있을것인가를 생각해 봐야..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q15683.java 여러 형태의 CCTV가 존재한다. 각 CCTV는 아래와 같이 감시를 한다. 사무실에는 벽도 있다. 벽은 6으로 주어진다. CCTV는 벽을 넘어서는 감시할 수 없다. CCTV는 벽을 넘어서 감시할 수 는 없으나 다른 CCTV를 넘어서는 감시 할 수 있다. 또 각 CCTV들은 90도씩 회전해서 다른 방향들을 감시 할 수 있다. 예를들어 4번을 보면 초기 감시가 ㅗ 였다면 ㅏ ㅜ ㅓ 형태의 감시도 회전을 통해 가능하다. 벽과 CCTV 들이 주어질 때, 감시 하지 못하는 사각지대 영역의 최소 크기를 구하여라. 처음 생각회전이 없다면 각 CCTV가 바라보는 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q12100.java 2048 게임을 구현한다. 새로 추가되는 블럭은 없다. 5번의 명령을 했을 때, 최대 숫자를 출력하여라. 처음 생각생각보다 난해한 문제였다. 완전한 구현문제! 상 하 좌 우로 흔드는 방향을 한개씩 해주면 코드가 너무 길어질 것 같아서 1개로 묶어준 후, 처리를 해주었다. ▶ 좀 더 짧게, 효율적으로 하려면 어떻게 해야할까? 생각해보고 후에 추가해야겠다. 다음 생각명령 5개를 DFS 탐색을 통해 정하고, 5개가 다 정해지면 원 배열을 복사한 copy[][]를 원 배열로 초기화를 시켜준 후 copy 배열로 명령을 실행하였다. 다다음 생각상 하 좌 우로 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q14502.java 연구소에서 바이러스가 퍼져나가는 것을 막기위해 벽을 세우려고 한다. 벽은 꼭 3개를 세워야한다. 이 때, 안전 구역의 최대값을 구하여라. 처음 생각우선 접근하는 방식은 SW Expert의 모의 문제인 벽돌 깨기와 비슷한다. [모의 SW 역량테스트] 벽돌 깨기 이 문제와 마찬가지로 범위의 제한이 아주적다. 벽은 3개이고 맵의 크기도 최대 [8][8]이다. 따라서 완전 탐색을 이용해서 벽 3개를 세울수 있는 모든 조건을 구해서 안전 구역을 구해주었다.▶ 시간에대해 간단히 계산을 해보면 최대 [8][8]이므로 맵의 크기는 최대 64가 된다. 이중 3개를 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q14890.java SW Expert의 활주로 건설과 같은 문제이다. 다른 점이 있다면 경사로문제는 밑면이 1일 때도 처리를 해주어야한다. 활주로 건설 문제는 밑면이 2부터이다.[SW Expert] 4014. [모의 SW 역량테스트] 활주로 건설 풀이후 생각이전에 풀었던 [활주로 건설]문제 보다는 좀 더 효율적으로 푼 느낌아닌 느낌이다. 처음 생각우선 같은 칸의 개수를 세어가다가 높이가 1차이나는 큰 블록을 만날경우는 크게 고려해줄게 없다. 하지만 요번에도 생각했던건 큰 블록에서 낮아질 경우를 처리해 주는것이 문제가 된다. ▶ 이 경우를 위해 boolean형 flag ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q14499.java 크기가 N x M인 지도에 숫자들이 적혀있다. 주사위의 초기자리에는 0이 적혀있으며, 해당 지도의 숫자가 0이 아닐경우 지도의 숫자가 주사위로 복사되고, 해당 지도의 숫자가 0이면 주사위의 숫자가 해당 지도의 자리에 복사된다.(주사위의 아랫면) 주사위 하나를 굴릴 때마다 윗면의 번호를 출력하여라. 굴리다 지도 범위를 벗어나는 경우는 굴리지 않는다. 즉, 출력도 하지 않는다. 처음 생각딱봤을 때, 어떻게 해야할 까 생각이 든다면, 이미 중수나 고수가 아닐까 생각한다. 문제는 이해가 간다. 주사위는 3D로 만들어진 육면체이다. 어떻게 코드로 구현을 할 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q15684.java 사다리의 상태가 주어진다. 새로운 가로줄을 최대 3개까지 그을 수 있을 때, i번째 시작이 i번째 도착지에 도착하도록 사다리를 조작하여라 불가능한 경우 -1을 출력한다. 처음 생각생각보다 정답률이 낮은 문제이므로 최대한 직관적으로 볼 수 있도록 풀어보았다. 우선 처음드는 생각은 이 사다리의 연결 상태를 어떻게 표현해 줄 것이가에 대한 생각이 들었다. 다양한 방법들이 있을 것이다. 2차 배열을 이용해서 1과 2가 연결되어있으면 arr[1][2]=1, arr[2][1]=1로 표현을 해도되고(실제로를 가로줄의 위치가 있으니 3차 배열일 것이다.) 배열을 ..
생각Github - https://github.com/hellojdh/Code/blob/master/src/baekjoon/swtest/Q15686.java 일반 집(1)과 치킨 집(2)이 표시된 배열이 주어진다. 치킨 거리는 한 집과 치킨집 간의 거기들 중 가장 짧은 거리를 의미한다. 도시의 치킨 거리는 집들의 치킨 거리를 모두 더한 값이다. M이 주어진다. M은 살아남은 치킨 집의 수이다. 최대 M개의 치킨 집을 살리고 모두 폐업시킬 때, 도시의 치킨 거리의 최소값을 구하여라. 처음 생각치킨.. 치킨! 치킨은 언제나 옳다. 따라서 문제를 잘 풀어주어야 한다. 처음에는 치킨에 눈이 팔려서 각 집의 치킨 거리를 구하는 과정이 모든 치킨집과의 거리를 더해준 것으로 잘 못 풀었다.▶ 예제가 잘 못 나오는 것..
- Total
- Today
- Yesterday