코딩테스트/프로그래머스 29

[프로그래머스] Lv.0 수열과 구간 쿼리 3(Java)

1. 문제 2. 제출 답안 class Solution { public int[] solution(int[] arr, int[][] queries) { for (int[] query : queries) { int i = query[0]; int j = query[1]; // arr[i]와 arr[j]의 값을 서로 바꿈 int temp = arr[i]; arr[i] = arr[j]; arr[j] = temp; } return arr; } } 원본 배열 직접 변경 3. 다른 풀이 import java.util.Arrays; class Solution { public int[] solution(int[] arr, int[][] queries) { int[] answer = Arrays.copyOf(arr, ar..

[프로그래머스] Lv.0 수 조작하기2(Java)

1. 문제 2. 제출 답안 public String solution(int[] numLog) { String answer = ""; int currentNum = numLog[0]; for (int i = 1; i < numLog.length; i++) { int diff = numLog[i] - numLog[i - 1]; if (diff == 1) { answer += "w"; // 수에 1을 더한 경우 } else if (diff == -1) { answer += "s"; // 수에 1을 뺀 경우 } else if (diff == 10) { answer += "d"; // 수에 10을 더한 경우 } else if (diff == -10) { answer += "a"; // 수에 10을 뺀 경우 } }..

[프로그래머스] Lv.0 수 조작하기1(Java)

1. 문제 2. 제출 답안 public int solution(int n, String control) { int answer = 0; for (int i = 0; i < control.length(); i++) { char c = control.charAt(i); // 문자열에서 i번째 문자 가져오기 switch (c) { case 'w': n += 1; break; case 's': n -= 1; break; case 'd': n += 10; break; case 'a': n -= 10; break; default: // 알 수 없는 문자는 무시 break; } } answer = n; return n; } 3. 다른 풀이 class Solution { public int solution(int n,..

[프로그래머스] Lv.0 마지막 두 원소(Java) ※

1. 문제 2. 제출 답안 public int[] solution(int[] num_list) { int size = num_list.length; // 원본 배열의 크기 저장 int last = num_list[size - 1]; // 마지막 원소 int prev = num_list[size - 2]; // 그 전 원소 int additionalValue = (last > prev) ? (last - prev) : (last * 2); // 추가할 값을 결정하는 조건식 int[] answer = new int[size + 1]; // 결과 배열 선언, 원본 배열의 길이보다 1 크게 만듦 for (int i = 0; i < size; i++) { answer[i] = num_list[i]; // 원본 배..

[프로그래머스] Lv.0 이어 붙인 수(Java)

1. 문제 2. 제출 답안 class Solution { public int solution(int[] num_list) { int sumOfOdd = 0; int sumOfEven = 0; for (int num : num_list) { if (num % 2 == 1) { sumOfOdd = sumOfOdd * 10 + num; // 홀수를 이어붙임 } else { sumOfEven = sumOfEven * 10 + num; // 짝수를 이어붙임 } } return sumOfOdd + sumOfEven; // 홀수와 짝수의 합 반환 } } 숫자들 간 공백 없이 이어붙이기 위해 10을 곱한다. 처음에는 0이므로 *10 을 해도 결과에 영향을 주지 않는다. +) 참고 odd number 홀수 even nu..

[프로그래머스] Lv.0 원소들의 곱과 합(Java)

1. 문제 2. 제출 답안 class Solution { public int solution(int[] num_list) { int product = 1; // 원소들의 곱을 초기화, 0으로 초기화하면 곱도 0이 되기 때문에 안됨 int sum = 0; // 원소들의 합을 초기화 for (int num : num_list) { product *= num; // 원소들의 곱 계산 sum += num; // 원소들의 합 계산 if (product > sum * sum) { return 0; // 곱이 합의 제곱보다 크면 0 반환 } } return 1; // 모든 원소의 곱이 합의 제곱보다 작으면 1 반환 } } 3. 다른 풀이 import java.util.Arrays; class Solution { pu..

[프로그래머스] Lv.0 주사위 게임2(Java)

1. 문제 2. 제출 답안 class Solution { public int solution(int a, int b, int c) { if (a == b && b == c) { // 세 주사위가 모두 같은 숫자 return (a + b + c) * (a * a + b * b + c * c) * (a * a * a + b * b * b + c * c * c); } else if (a == b || b == c || a == c) { // 두 개의 숫자가 같고 나머지가 다르면 return (a + b + c) * (a * a + b * b + c * c); } else { // 세 개가 모두 다른 경우 return a + b + c; } } } 3. 다른 풀이 class Solution { public in..

[프로그래머스] Lv.0 등차수열의 특정한 항만 더하기(Java)

1. 문제 2. 제출 답안 class Solution { public int solution(int a, int d, boolean[] included) { int n = included.length; // n은 included의 배열의 길이, 배열의 길이 = 등차수열의 길이 int answer = 0; // 합 변수 초기화 for(int i = 0; i < n; i++){ // 반복문으로 included 배열 순회 if(included[i]){ // 현재 항이 true인 경우만 처리 answer += a + i * d; // 선택된 항의 값 계산 후 더하기 } } return answer; } } 3. 다른 풀이 import java.util.stream.IntStream; class Solution ..

[프로그래머스] Lv.0 코드 처리하기(Java)※

1. 문제 2. 제출 답안 3. 다른 풀이 class Solution { public String solution(String code) { String answer = ""; int mode = 0; // 0 또는 1의 값을 가지고, 현재 모드를 나타냄 for (int i = 0; i < code.length(); i++) { // 문자열 code를 인덱스 i 이용해 반복 if (code.charAt(i) == '1') mode = 1 - mode; // 현재 문자가 1인지 확인 후 mode 전환 else if (i % 2 == mode) answer += code.charAt(i); // 아니라면 i와 mode가 일치하는지 확인하여 추가 } return "".equals(answer) ? "EMPTY..