반응형
[프로그래머스 - 코딩테스트 연습] Lv.0 마지막 두 원소.java
class Solution {
public int[] solution(int[] num_list) {
// num_list의 길이
int n = num_list.length;
// 결과 배열을 기존 배열의 크기 + 1로 초기화
int[] answer = new int[n + 1];
// 기존 배열 원소 복사
for (int i = 0; i < n; i++) {
answer[i] = num_list[i];
}
// 마지막 원소와 그 전 원소
int last = num_list[n - 1];
int secondLast = num_list[n - 2];
// 조건에 따라 새로운 원소 추가
if (last > secondLast) {
answer[n] = last - secondLast;
} else {
answer[n] = last * 2;
}
return answer;
}
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181927
[프로그래머스 - 코딩테스트 연습] Lv.0 수 조작하기 1.java
class Solution {
public int solution(int n, String control) {
// 문자열 control의 각 문자를 순회
for (char c : control.toCharArray()) {
// 문자에 따라 n을 업데이트
switch (c) {
case 'w':
n += 1;
break;
case 's':
n -= 1;
break;
case 'd':
n += 10;
break;
case 'a':
n -= 10;
break;
default:
// 잘못된 문자가 들어올 경우, 아무것도 하지 않음
break;
}
}
// 최종 값 반환
return n;
}
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181926
[프로그래머스 - 코딩테스트 연습] Lv.0 수 조작하기 2.java
class Solution {
public String solution(int[] numLog) {
StringBuilder answer = new StringBuilder();
for (int i = 1; i < numLog.length; i++) {
int difference = numLog[i] - numLog[i - 1];
switch (difference) {
case 1:
answer.append("w");
break;
case -1:
answer.append("s");
break;
case 10:
answer.append("d");
break;
case -10:
answer.append("a");
break;
}
}
return answer.toString();
}
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181925
[프로그래머스 - 코딩테스트 연습] Lv.0 수열과 구간 쿼리 3.java
class Solution {
public int[] solution(int[] arr, int[][] queries) {
// 쿼리 배열의 각 쿼리를 순회
for (int[] query : queries) {
int i = query[0]; // 첫 번째 인덱스
int j = query[1]; // 두 번째 인덱스
// 인덱스 i와 j의 값을 서로 교환
int temp = arr[i]; // 인덱스 i의 값을 임시로 저장
arr[i] = arr[j]; // 인덱스 j의 값을 인덱스 i에 저장
arr[j] = temp; // 임시로 저장한 값을 인덱스 j에 저장
}
// 처리된 배열을 반환
return arr;
}
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181924
[프로그래머스 - 코딩테스트 연습] Lv.0 수열과 구간 쿼리 2.java
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public int[] solution(int[] arr, int[][] queries) {
// 결과를 저장할 배열
int[] answer = new int[queries.length];
// 각 쿼리를 순회
for (int q = 0; q < queries.length; q++) {
int s = queries[q][0];
int e = queries[q][1];
int k = queries[q][2];
// k보다 큰 값들을 저장할 리스트
List<Integer> greaterThanK = new ArrayList<>();
// 인덱스 s부터 e까지 확인
for (int i = s; i <= e; i++) {
if (arr[i] > k) {
greaterThanK.add(arr[i]);
}
}
// 리스트가 비어 있지 않으면, 가장 작은 값 찾기
if (!greaterThanK.isEmpty()) {
answer[q] = greaterThanK.stream().min(Integer::compareTo).get();
} else {
answer[q] = -1;
}
}
return answer;
}
}
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/courses/30/lessons/181923
반응형
'Computer Science > 알고리즘문제' 카테고리의 다른 글
[프로그래머스 - 코딩테스트 연습] 코딩 기초 트레이닝 Lv.0 문제 모음 (Day 5) (0) | 2024.08.03 |
---|---|
[프로그래머스 - 코딩테스트 연습] 코딩 기초 트레이닝 Lv.0 문제 모음 (Day 4) (0) | 2024.08.02 |
[프로그래머스 - 코딩테스트 연습] 코딩 기초 트레이닝 Lv.0 문제 모음 (Day 3) (0) | 2024.08.02 |
[프로그래머스 - 코딩테스트 연습] 코딩 기초 트레이닝 Lv.0 문제 모음 (Day 2) (0) | 2024.08.02 |
[프로그래머스 - 코딩테스트 연습] 코딩 기초 트레이닝 Lv.0 문제 모음 (Day 1) (0) | 2024.08.02 |