전체 글 126

[코딩테스트 연습] 다음에 올 숫자 - Lv.0

다음에 올 숫자 [문제 풀이] 만약 arr = {1, 2, 3}으로 등차수열을 이룰 경우, arr [1] - arr [0]의 값과 arr [2] - arr [1]의 값은 동일하다. 그러므로 다음에 올 수는 배열의 마지막 값에 arr [1] - arr [0](공차)의 값을 더하면 구할 수 있다. arr = {2, 4, 8}으로 배열이 등비수열을 이룰 경우, 배열의 마지막 값에 공비를 곱해주면 답을 구할 수 있다. 공비는 common [1] / common [0]으로 구할 수 있다. [코드]

프로그래머스 2023.06.12

[코딩테스트 연습] 무작위로 K개의 수 뽑기 - Lv.0

무작위로 K개의 수 뽑기 [문제 풀이] 먼저 반환되는 배열(answer)의 값을 모두 -1로 초기화한다. distinct() 메서드를 사용해서 arr 배열의 중복을 제거한다. 중복을 제거한 배열을 re라는 배열에 저장한 뒤, 이 배열(re)이 k보다 길이가 짧거나 같을 경우와 그렇지 않을 경우 for문의 범위를 조정하여 반환되는 배열(answer)에 값을 저장한다. [코드]

프로그래머스 2023.06.05

[코딩테스트 연습] 세 개의 구분자 - Lv.0

세 개의 구분자 [문제 풀이] 배열에 넣을 문자열을 저장할 임시 변수로 tmp를 선언했다. myStr 중에서 문자 하나가 "a", "b", "c"이고, tmp가 빈 변수가 아니라면 배열에 추가한다. 문자 하나가 "a", "b", "c"이 아닐 경우에는 tmp에 문자를 더해준다. ( ↑ 반복문 안에서 진행) 반복문이 끝나고 tmp에 문자가 있으면 배열에 추가해 주고, 빈 배열일 경우 "EMPTY"를 추가해 준다. 이렇게 문자를 구분하여 푸는 문제를 filter() 메서드를 사용하여 풀어내려고 시도 중이다. 아직 filter() 메서드 사용법이 익혀지지 않아서 문제를 풀고 다른 분의 풀이를 보고 참고했다. 두 번째 코드가 filter() 메서드를 사용하여 작성한 코드이다. [코드] stream()을 사용하여..

프로그래머스 2023.06.02

[코딩테스트 연습] 특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 - Lv.0

특정 문자열로 끝나는 가장 긴 부분 문자열 찾기 [문제 풀이] Java에서 특정 문자열의 인덱스를 찾기 위해 indexOf() 메서드를 사용한다. 이 문제에서는 myString의 부분 문자열 중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 반환해야 한다. pat로 끝나는 가장 긴 부분 문자열을 찾기 위해서는 lastIndexOf() 메서드를 사용하면 된다. lastIndexOf() 메서드를 사용해서 pat 문자열 앞까지 answer에 저장하고 pat까지 저장하면 끝난다. [코드]

프로그래머스 2023.05.26

[코딩테스트 연습] 원하는 문자열 찾기 - Lv.0

원하는 문자열 찾기 [코드] [문제 풀이] 문제에서 대소문자를 구분하지 않는다는 조건이 있으므로 매개변수로 받은 문자열을 모두 대문자로 변환하여 저장하였다. 이제 myString에 pat 문자열이 포함되었는지 확인만 하면된다. contains() 메서드를 사용해서 pat 문자열이 myString 문자열에 포함되었는지 확인했다. contains() 메서드의 type은 boolean 이므로 if문의 조건식으로 사용하여 return 값을 결정했다. if문에 걸리면 1을 반환하고 그렇지 않으면 0을 반환한다.

프로그래머스 2023.05.25

[코딩테스트 연습] 배열 조각하기 - Lv.0

배열 조각하기 [문제 풀이] query의 인덱스가 짝수일 경우에는 arr[0] ~ arr[query[i]] 까지 배열을 복제하고, query의 인덱스가 홀수일 경우에는 arr[query[i]] ~ arr[arr.length-1] 까지 배열을 복제한다. Arrays의 copyOfRange 메서드를 사용해서 배열을 복제하였다. copyOfRange(복제할 배열, 시작 위치, 배열의 크기) copyOfRange 메서드의 마지막 파라미터 값이 배열의 크기이므로 코드를 작성할 때 1씩 더한 값을 넣어줬다. "arr.length는 왜 +1을 하지 않았나요?"라는 질문이 떠오를 수는 있지만 조금만 생각해 보면 이해할 것이다. (우리는 배열의 마지막 요소의 인덱스를 구할 때 arr.length-1을 사용한다.) ** ..

프로그래머스 2023.05.22

[코딩테스트 연습] 수열과 구간쿼리2 - Lv.0

수열과 구간쿼리 2 import java.util.Arrays; class Solution { public int[] solution(int[] arr, int[][] queries) { int len = queries.length; int[] answer = new int[len]; Arrays.fill(answer, -1); for(int i = 0; i < len; i++) { int s = queries[i][0]; int e = queries[i][1]; int k = queries[i][2]; for(int j = s; j k) { answer[i] = answer[i] == -1 ? arr[j] : Math.min(arr[j], answer[i]); } } } return answer; } ..

프로그래머스 2023.05.06