본문 바로가기

프로그래머스/lv0

(93)
평행 /* 평행 * 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다 * [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] * 주어진 네 개의 점을 두 개씩 이었을 때, * 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return * * dots result * [[1, 4], [9, 2], [3, 8], [11, 6]] 1 * 점 [1, 4], [3, 8]을 잇고 [9, 2], [11, 6]를 이으면 두 선분은 평행 * [[3, 5], [4, 1], [2, 4], [5, 10]] 0 * 점을 어떻게 연결해도 평행하지 않습니다. * * 반례 * [[1, 1], [5, 1], [1, 10], [3, 10]] */ 1 2 3 4 5 6 7 8 9 ..
안전지대 /* 안전지대 * 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류 * 지뢰는 2차원 배열 board에 1로 표시되어 있고 * board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다. * 지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return * * board * [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 1, 0, 0], [0, 0, 0, 0, 0]] * > 16 : (3, 2)에 지뢰가 있으므로 지뢰가 있는 지역과 지뢰와 인접한 * 위, 아래, 좌, 우, 대각선 총 8칸은 위험지역입니다. 따라서 16을 return * [[0, 0, 0..
저주의 숫자 3 /* 저주의 숫자 3 * 3x 마을 사람들은 3을 저주의 숫자라고 생각하기 때문에 * 3의 배수와 숫자 3을 사용하지 않습니다. * 3x 마을 사람들의 숫자는 다음과 같습니다. * * 10진법 3x 마을에서 쓰는 숫자 * 1 1 * 2 2 * 3 4 - * 4 5 * 5 7 - * 6 8 * 7 10 - * 8 11 * 9 14 - * 10 16 - * 정수 n이 매개변수로 주어질 때, n을 3x 마을에서 사용하는 숫자로 바꿔 return * * n result * 15 25 * 40 76 */ 1234567891011121314151617181920212223public class programmer_0_91 { static int a1 = 15; static int a2 = 40; public int..
특이한 정렬 /* 특이한 정렬 * 정수 n을 기준으로 n과 가까운 수부터 정렬하려고 합니다. * 이때 n으로부터의 거리가 같다면 더 큰 수를 앞에 오도록 배치합니다. * 정수가 담긴 배열 numlist와 정수 n이 주어질 때 * numlist의 원소를 n으로부터 가까운 순서대로 정렬한 배열을 return * * numlist n result * [1, 2, 3, 4, 5, 6] 4 [4, 5, 3, 6, 2, 1] * [10000,20,36,47,40,6,10,7000] 30 [36, 40, 20, 47, 10, 6, 7000, 10000] */ 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525..
유한소수 판별하기 /* 유한소수 판별하기 * 소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. * 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. * * 유한소수가 되기 위한 분수의 조건은 다음과 같습니다. * 기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다. * 두 정수 a와 b가 매개변수로 주어질 때, * a/b가 유한소수이면 1을, 무한소수라면 2를 return * * a b result * 7 20 1 분모 20의 소인수가 2, 5이기 때문에 유한소수 * 11 22 1 분모 2는 소인수가 2 뿐이기 때문에 유한소수 * 12 21 2 분모 7은 소인수가 7 이므로 무한소수 */ 1234567891011121314151617181920212223..
직사각형의 넓이 /* 직사각형의 넓이 * 2차원 좌표 평면에 변이 축과 평행한 직사각형이 있습니다. * 직사각형 네 꼭짓점의 좌표 [[x1, y1], [x2, y2], [x3, y3], [x4, y4]]가 담겨있는 * 배열 dots가 매개변수로 주어질 때, * 직사각형의 넓이를 return * * dots result * [[1, 1], [2, 1], [2, 2], [1, 2]] 1 가로, 세로 길이는 각각 1, 1 * [[-1, -1], [1, 1], [1, -1], [-1, 1]] 4 직사각형의 가로, 세로 길이는 각각 2, 2 */ 12345678910111213141516171819202122232425import java.lang.*;public class programmer_0_88 { static int[]..
컨트롤 제트 /* 컨트롤 제트 * 숫자와 "Z"가 공백으로 구분되어 담긴 문자열이 주어집니다. * 문자열에 있는 숫자를 차례대로 더하려고 합니다. * 이 때 "Z"가 나오면 바로 전에 더했던 숫자를 뺀다는 뜻입니다. * 숫자와 "Z"로 이루어진 문자열 s가 주어질 때, 머쓱이가 구한 값을 return * * s result * "1 2 Z 3" 4 * "10 20 30 40" 100 * "10 Z 20 Z 1" 1 * "10 Z 20 Z" 0 * "-1 -2 -3 Z" -3 */ 12345678910111213141516171819202122232425262728293031323334public class programmer_0_87 { static String a1 = "1 2 Z 3"; static String ..
삼각형의 완성조건 (2) /* 삼각형의 완성조건 (2) * 선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다. * 가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. * 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. * 나머지 한 변이 될 수 있는 정수의 개수를 return * * sides result * [1, 2] 1 두 변이 1, 2 인 경우 삼각형을 완성시키려면 나머지 한 변이 2 * [3, 6] 5 * 가장 긴 변이 6인 경우, 될 수 있는 나머지 한 변은 4, 5, 6 로 3개 * 나머지 한 변이 가장 긴 변인 경우, 될 수 있는 한 변은 7, 8 로 2개 * [11, 7] 13 * 가장 긴 변이 11인 경우, 나머지 한 변은 5, 6, 7, 8, 9,..