프로그래머스 (전국 대회 선발 고사)
import java.util.*;
public class problem415 {
class Solution {
public int solution(int[] rank, boolean[] attendance) {
List<Integer> result = new ArrayList<>();
Map<Integer, Integer> map = new HashMap<>();
int answer = 0;
for (int i = 0; i < attendance.length; i++) {
map.put(rank[i], i); // map객체에 rank의 인덱스값 저장
if (attendance[i]) {
result.add(rank[i]);
}
}
// 내림차순으로 정렬하여 높은 등수를 확인
Collections.sort(result);
for (int i = 0; i < 3; i++) {
if (i == 0) {
answer += 10000 * map.get(result.get(i));
} else if (i == 1) {
answer += 100 * map.get(result.get(i));
} else {
answer += map.get(result.get(i));
}
}
return answer;
}
}
}
프로그래머스 (OX퀴즈)
public class problem416 {
class Solution {
public String[] solution(String[] quiz) {
String[] answer = new String[quiz.length];
for (int i = 0; i < quiz.length; i++) {
String[] numbers = quiz[i].split(" ");
int num1 = Integer.parseInt(numbers[0]); // 첫번째 숫자 저장
int num2 = Integer.parseInt(numbers[2]); // 두번째 숫자 저장
int result = Integer.parseInt(numbers[4]); // 결과값 저장
// 연산자 저장
String operator = numbers[1];
// 연산자가 "-" 일경우
if (operator.equals("-")) {
if (num1 - num2 == result) {
answer[i] = "O";
} else {
answer[i] = "X";
}
}
// 연산자가 "+" 일경우
else {
if (num1 + num2 == result) {
answer[i] = "O";
} else {
answer[i] = "X";
}
}
}
return answer;
}
}
}
프로그래머스 (코드 처리하기)
public class problem417 {
class Solution {
public String solution(String code) {
StringBuilder build = new StringBuilder();
int mode = 0; // 초기 mode는 0
for (int i = 0; i < code.length(); i++) {
// mode가 0일경우
if (mode == 0) {
// code 문자열에서 1이 아닐경우 1은 모드변환
if (code.charAt(i) != '1') {
if (i % 2 == 0) {
build.append(code.charAt(i));
}
} else {
mode = 1; // codes의 1이 있을경우 mode 변환
}
}
// mode가 1인경우
else {
if (code.charAt(i) != '1') {
if (i % 2 != 0) {
build.append(code.charAt(i));
}
} else {
mode = 0;
}
}
}
// 빈문자열일경우
if (build.length() == 0) {
return "EMPTY";
} else {
return build.toString();
}
}
}
}
프로그래머스 (연속된 수의 합)
public class problem418 {
class Solution {
public int[] solution(int num, int total) {
int[] answer = new int[num];
// 점화식 도출
int start = total / num - (num - 1) / 2;
for (int i = 0; i < answer.length; i++) {
answer[i] = start + i;
}
return answer;
}
}
}