본문 바로가기

Java

(110)
[java/프로그래머스/120907] OX퀴즈 (.split) ✏️ 문제 설명덧셈, 뺄셈 수식들이 'X [연산자] Y = Z' 형태로 들어있는 문자열 배열 quiz가 매개변수로 주어집니다. 수식이 옳다면 "O"를 틀리다면 "X"를 순서대로 담은 배열을 return하도록 solution 함수를 완성해주세요.✏️ codeclass Solution { public String[] solution(String[] quiz) { String[] result = new String[quiz.length]; for (int i = 0; i
[java/프로그래머스/120863] 다항식 더하기 (polynomial.split("\\+ "), .contains, .equals, .replace, .append, .toString) ✏️ 문제 설명한 개 이상의 항의 합으로 이루어진 식을 다항식이라고 합니다. 다항식을 계산할 때는 동류항끼리 계산해 정리합니다. 덧셈으로 이루어진 다항식 polynomial이 매개변수로 주어질 때, 동류항끼리 더한 결괏값을 문자열로 return 하도록 solution 함수를 완성해보세요. 같은 식이라면 가장 짧은 수식을 return 합니다.✏️ code📌 polynomial.split("\\+ ");- polynomial은 양의 정수, 공백, 'x', '+'로 이루어져 있고- 항과 연산기호 사이에는 항상 공백이 존재하기 때문에 (+ )으로 split했습니다.(이스케이프 처리: 특수문자를 사용할 때는 앞에 \\를 붙여주어야 함)📌 String term for문과 if문- term.trim(): 공백을 ..
[java/프로그래머스/120878] 유한소수 판별하기 (gcd) ✏️ 문제 설명소수점 아래 숫자가 계속되지 않고 유한개인 소수를 유한소수라고 합니다. 분수를 소수로 고칠 때 유한소수로 나타낼 수 있는 분수인지 판별하려고 합니다. 유한소수가 되기 위한 분수의 조건은 다음과 같습니다.기약분수로 나타내었을 때, 분모의 소인수가 2와 5만 존재해야 합니다.두 정수 a와 b가 매개변수로 주어질 때, a/b가 유한소수이면 1을, 무한소수라면 2를 return하도록 solution 함수를 완성해주세요.✏️ code📌 기약분수로 만들기: 먼저 a와 b의 최대공약수를 구하여 둘을 나눠 기약분수로 만듭니다.📌 유한소수 조건 여부 판단하기- while문으로 2와 5로 나누고, 나눈 값이 1이라면 유한소수(1) 아니라면 무한소수(2)입니다.- while (b % 2 == 0) { b ..
[Java/문법] ArrayLIst 주요 메서드 정리 (add, get, contains, indexOf, lastIndexOf, set, remove, clear, size, isEmpty, toArray, forEach, sort(Comparator.naturalorder()/.reverseOrder())) ✏️ 추가: add메서드설명add(E e)리스트 끝에 요소 추가add(int index, E e)특정 인덱스에 요소 삽입ArrayList list = new ArrayList();list.add("Apple"); // ["Apple"]list.add("Banana"); // ["Apple", "Banana"]list.add(1, "Cherry"); // ["Apple", "Cherry", "Banana"] ✏️ 조회: get, contains메서드설명get(int index)특정 인덱스의 요소 가져오기contains(Object o)리스트에 특정 요소가 있는지 확인 (반환: true / false)indexOf(Object o)특정 요소의 인덱스 반환 (없으면 -1)lastIndexOf(Object..
[java/프로그래머스/120882] 등수 매기기 (double, avgs.sort((a, b) -> Double.compare(b[1], a[1])), avgs.get(i)[1] != avgs.get(i-1)[1], rank = i + 1) ✏️ 문제 설명영어 점수와 수학 점수의 평균 점수를 기준으로 학생들의 등수를 매기려고 합니다. 영어 점수와 수학 점수를 담은 2차원 정수 배열 score가 주어질 때, 영어 점수와 수학 점수의 평균을 기준으로 매긴 등수를 담은 배열을 return하도록 solution 함수를 완성해주세요.✏️ code📌 평균 점수- int형으로 계산하면 1.5와 1.0이 모두 1로 저장되어 부정확한 평균이 저장됩니다. 따라서 double로 계산하였습니다.- double avg = (score[i][0] + score[i][1]) / 2.0;📌 내림차순 정렬- avgs.sort((a, b) -> Double.compare(b[1], a[1]));📌 등수 매기기- if문: i = 0부터 시작하지만, 이전 평균 점수와 비..
[java/프로그래머스/120924] 다음에 올 숫자 (등차수열, 등비수열 비교) ✏️ 문제 설명등차수열 혹은 등비수열 common이 매개변수로 주어질 때, 마지막 원소 다음으로 올 숫자를 return 하도록 solution 함수를 완성해보세요.  제한사항2 -1,000 common의 원소는 모두 정수입니다.등차수열 혹은 등비수열이 아닌 경우는 없습니다.등비수열인 경우 공비는 0이 아닌 정수입니다.✏️ codeclass Solution { public int solution(int[] common) { int last = common.length - 1; if (common[1] - common[0] == common[2] - common[1]) { int diff = common[1] - common[0]; ret..
[java/프로그래머스/120868] 삼각형의 완성조건(2) (삼항연산자, answer += min * 2 - 1) ✏️ 문제 설명선분 세 개로 삼각형을 만들기 위해서는 다음과 같은 조건을 만족해야 합니다.가장 긴 변의 길이는 다른 두 변의 길이의 합보다 작아야 합니다. 삼각형의 두 변의 길이가 담긴 배열 sides이 매개변수로 주어집니다. 나머지 한 변이 될 수 있는 정수의 개수를 return하도록 solution 함수를 완성해주세요.✏️ code📌 아쉬운 점- for문을 이용한 count 계산 => 시간복잡도 O(n)- 만약 수식을 사용하여 직접 계산했다면 O(1) 시간 복잡도를 가질 수 있을 것입니다.📌O(1): answer += min * 2 - 1;- 삼각형의 조건: max - max: Math.max(sides[0], sides[1])- min: Math.min(sides[0], sides[1])- 세 ..
[java/프로그래머스/120866] 안전지대 (List<int[]> oneBoard, 8방 탐색, flatMapToInt(Arrays::stream)) ✏️ 문제 설명다음 그림과 같이 지뢰가 있는 지역과 지뢰에 인접한 위, 아래, 좌, 우 대각선 칸을 모두 위험지역으로 분류합니다.지뢰는 2차원 배열 board에 1로 표시되어 있고 board에는 지뢰가 매설 된 지역 1과, 지뢰가 없는 지역 0만 존재합니다.지뢰가 매설된 지역의 지도 board가 매개변수로 주어질 때, 안전한 지역의 칸 수를 return하도록 solution 함수를 완성해주세요. ✏️ code📌 List oneBoard = new ArrayList();- indexOf는 배열에서 첫 번째 일치하는 값만 찾을 수 있기에 이 문제와 적절하지 않습니다.- 여러 개의 1을 처리하기 위해선 별도의 저장이 필요하므로, List oneBoard로 1의 위치를 저장하였습니다.📌 8방 탐색- oneB..

반응형