정수를 나선형으로 배치하기
https://school.programmers.co.kr/learn/courses/30/lessons/181832
class Solution {
public int[][] solution(int n) {
int[][] answer = new int[n][n];
int[][] rule = {{0, 1}, {1, 0}, {0, -1}, {-1, 0}};
int index = 0; // rule 넘기는 index
int value = 1; // 1 ~ n^2
int i = 0; int j = 0;
while(value <= n * n) {
answer[i][j] = value;
value++;
int test_i = i + rule[index][0]; // 다음 예상되는 i
int test_j = j + rule[index][1]; // 다음 예상되는 j
if(test_i >= n || test_i < 0 || test_j >= n || test_j < 0 || answer[test_i][test_j] != 0) {
// 다음 넘어가기 전에 방향 바꿔야되는지 미리 확인해야함
index++; // rule 넘어감
if(index == 4) index = 0; // rule 배열 크기는 4라서 넘어가면 안됨
}
// i, j 진짜 바꿔줌
i = i + rule[index][0];
j = j + rule[index][1];
}
return answer;
}
}
전국 대회 선발 고사
https://school.programmers.co.kr/learn/courses/30/lessons/181851
import java.util.*;
class Solution {
public int solution(int[] rank, boolean[] attendance) {
int answer = 0;
List<Integer> list = new ArrayList<>();
for(int i=0; i<rank.length; i++) {
if(attendance[i]) {
list.add(rank[i]);
}
}
Collections.sort(list);
int a=0;
int b=0;
int c=0;
for(int i=0; i<rank.length; i++) {
if(rank[i] == list.get(0)) a = i;
else if(rank[i] == list.get(1)) b = i;
else if(rank[i] == list.get(2)) c = i;
}
answer = 10000 * a + 100 * b + c;
return answer;
}
}
커피 심부름
https://school.programmers.co.kr/learn/courses/30/lessons/181837
class Solution {
public int solution(String[] order) {
int answer = 0;
for(String s : order) {
if(s.contains("americano")) {
answer += 4500;
} else if (s.contains("cafelatte")) {
answer += 5000;
} else if(s.equals("anything")) {
answer += 4500;
}
}
return answer;
}
}
조건에 맞게 수열 변환하기 2
https://school.programmers.co.kr/learn/courses/30/lessons/181881
class Solution {
public String[] solution(String[] picture, int k) {
String[] answer = new String[picture.length * k];
int count = 0;
String change = "";
for(int n=0; n<answer.length; n+=k) {
for(int i=0; i<picture[0].length(); i++) {
for(int j=0; j<k; j++) {
change += picture[count].charAt(i);
}
}
answer[n] = change;
count++;
for(int i=0; i<k; i++) {
answer[n+i] = answer[n];
}
change = "";
}
return answer;
}
}
'코딩테스트-알고리즘 > 도전' 카테고리의 다른 글
완 😎 (0) | 2024.01.12 |
---|---|
2024.01.12 - 1문제 (0) | 2024.01.12 |
2024.01.10 - 1문제 (0) | 2024.01.10 |
2024.01.09 - 9문제 (0) | 2024.01.09 |
2024.01.08 - 18문제 (0) | 2024.01.08 |