프로그래머스 (LEVEL 1)
class Solution {
public String solution(int[] food) {
String answer = "";
String left ="";
String right = "";
// food의 첫번째 인덱스는 무조건 1이다. (0은 한개만존재)
for(int i = 1; i < food.length; i++){
if(food[i] != 0){
// food의 인덱스 데이터값이 왼쪽 오른쪽으로 짝수갯수가 담긴다.
for(int j = 0; j < food[i] / 2; j++){
left += String.valueOf(i);
right += String.valueOf(i);
}
}
}
answer = left + "0";
// right에 담긴 문자열은 뒤집어 줘야된다.
for(int k = right.length() - 1 ; k >=0; k--){
answer += right.substring(k, k+1);
}
return answer;
}
}
프로그래머스 (LEVEL 1)
import java.util.HashMap;
import java.util.Map;
class Solution {
public int[] solution(String s) {
String[] split = s.split("");
int[] answer = new int[s.length()];
Map<String, Integer> map = new HashMap<>();
for (int i = 0; i < s.length(); i++) {
// map 객체에 값이 put 되어있지 않은경우 -1로 초기화
if (map.get(split[i]) == null) {
answer[i] = -1;
} else {
// get은 value값을 뱉는다. key값에따라
answer[i] = i - map.get(split[i]);
}
// map 객체의 value값을 담아준다.
// (인덱스 값 차이를 구해야되기 때문에 value에 i를담는다)
map.put(split[i], i);
}
return answer;
}
}
프로그래머스 (LEVEL 1)
class Solution {
public int solution(int n) {
int answer = 0;
for (int i = 2; i <= n; i++) {
boolean check = true;
// Math.sqrt() = 루트씌인 값을 뱉는다.
for (int j = 2; j <= Math.sqrt(i); j++) {
// sqrt의 값까지 검증을 한후 소수를 판단한다.
if (i % j == 0) {
check = false;
// 소수를 찾게되면 바로 break
break;
}
}
if (check) {
answer++;
}
}
return answer;
}
}
프로그래머스 (LEVEL 1)
import java.util.*;
class Solution {
public int solution(int k, int m, int[] score) {
int answer = 0;
// k 최대점수
Integer [] arr = new Integer[score.length];
for(int i = 0; i < score.length; i++){
arr[i] = score[i];
}
Arrays.sort(arr, Comparator.reverseOrder());
int temp = 0;
while(true){
if(temp + m > score.length){
break;
}
// 최소점수 * 사과 갯수
answer += arr[temp + m - 1] * m;
// 인덱스를 m만큼 증가 시켜준다.
temp += m;
}
return answer;
}
}