목록데이터 엔지니어링 정복/Algorithm (159)
지구정복
https://www.acmicpc.net/problem/10250 10250번: ACM 호텔 프로그램은 표준 입력에서 입력 데이터를 받는다. 프로그램의 입력은 T 개의 테스트 데이터로 이루어져 있는데 T 는 입력의 맨 첫 줄에 주어진다. 각 테스트 데이터는 한 행으로서 H, W, N, 세 정수 www.acmicpc.net -문제해설 그냥 입력받은 값을 수학적으로 구현했다. 층수 값을 만들고 호수 값을 더했다. 예를 들어 문제의 예시인 6 12 10인 경우 400 을 만들고 2를 만들어서 402를 출력했다. 먼저 층수 값을 만드는 방법은 두 가지로 나눠진다. 만약에 n%h가 0인경우와 n%h!=0인 경우로 나눠진다. n%h==0 인 경우는 ( n-h * ((n/h)-1) ) * 100 이고 n%h!=0 ..
https://www.acmicpc.net/problem/4153 4153번: 직각삼각형 입력은 여러개의 테스트케이스로 주어지며 마지막줄에는 0 0 0이 입력된다. 각 테스트케이스는 모두 30,000보다 작은 양의 정수로 주어지며, 각 입력은 변의 길이를 의미한다. www.acmicpc.net -문제해설 피타고라스 정리가 성립하면 직각삼각형이다. 이때 주어지는 입력값들 중에서 가장 큰 값이 우변에 있어야 되고 나머지 두 개의 값들이 좌변에 있어야 한다. x^2 + y^2 = z^2 따라서 입력값을 배열에 저장하고 그 배열을 오름차순으로 정렬해서 피타고라스 정리를 적용한다. -자바 package math; import java.io.BufferedReader; import java.io.BufferedWr..
https://www.acmicpc.net/problem/1085 1085번: 직사각형에서 탈출 한수는 지금 (x, y)에 있다. 직사각형의 왼쪽 아래 꼭짓점은 (0, 0)에 있고, 오른쪽 위 꼭짓점은 (w, h)에 있다. 직사각형의 경계선까지 가는 거리의 최솟값을 구하는 프로그램을 작성하시오. www.acmicpc.net -문제해설 현재 x좌표에서 직사각형 끝으로 가기 위한 방법은 오른쪽으로 가거나 왼쪽으로 가거나 두 가지이고 왼쪽일 경우 거리는 x, 오른쪽일 경우 거리는 w-x y좌표에서 직사각형 끝으로 가려면 위로 가거나 아래로 가거나 둘 뿐이고 위로갈 경우 거리는 h-y, 아래로 갈 경우 거리는 y 이 네가지 경우에서 가장 작은 수를 출력하면 된다. -자바 package math; import j..
https://www.acmicpc.net/problem/1018 1018번: 체스판 다시 칠하기 첫째 줄에 N과 M이 주어진다. N과 M은 8보다 크거나 같고, 50보다 작거나 같은 자연수이다. 둘째 줄부터 N개의 줄에는 보드의 각 행의 상태가 주어진다. B는 검은색이며, W는 흰색이다. www.acmicpc.net -문제해설 자바의 첫 번째 소스코드는 미리 올바른 체스판 배열을 만든 다음 입력배열과 비교하는 코드이다. 문제에서는 최소한 가로세로 8이상이라고 했는데 잠시 예시를 위해 4*4을 입력받는다고 해보자. 4*4의 올바른 체스판은 아래와 같다. -W로 시작할 경우 WBWB BWBW WBWB BWBW -B로 시작할 경우 BWBW WBWB BWBW WBWB 이런 올바른 배열을 두 개 다 만들 필요없..