728x90
반응형
목차
배열 두 배 만들기
class Solution {
public int[] solution(int[] numbers) {
int[] answer = new int[numbers.length];
for (int i = 0; i < numbers.length; i++) {
answer[i] = numbers[i] * 2;
}
return answer;
}
}
짝수는 싫어요
첫 번째 시도
class Solution {
public int[] solution(int n) {
int count = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
count += 1;
}
}
int[] answer = new int[count];
int count2 = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
answer[count2] = i;
count2++;
}
}
return answer;
}
}
- 배열의 초기화를 위해 한번 짝수의 개수가 얼마나되는지 구한다.
- 앞에서 구한 짝수의 개수를 다시 배열을 초기화하는데 사용한다.
- 그리고 다시 짝수의 개수를 구한다.
두 번째 시도
class Solution {
public int[] solution(int n) {
// 홀수의 개수를 구하는 방법
int count_odds = 0;
if (n % 2 != 0) { // n이 짝수일 떄
count_odds = (n / 2) + 1;
} else { // n이 홀수일 때
count_odds = (n / 2);
}
int[] answer = new int[count_odds];
int count2 = 0;
for (int i = 1; i <= n; i++) {
if (i % 2 != 0) {
answer[count2] = i;
count2++;
}
}
return answer;
}
}
- n 이하의 홀수의 수를 구하는 공식
- n이 짝수라면 (n/2) +1
- n이 홀수라면 (n/2)
- n 이하의 짝수의 수를 구하는 공식
- n이 짝수든 홀수든 (n/2)
아이스 아메리카노
첫 번째 시도
class Solution {
public int[] solution(int money) {
int ICE_AMERICANE = 5500;
int[] answer = new int[2];
int buyable = (money / 5500);
int reaminer = money - (buyable * ICE_AMERICANE);
answer[0] = buyable;
answer[1] = reaminer;
return answer;
}
}
두 번째 시도
class Solution {
public int[] solution(int money) {
int ICE_AMERICANE = 5500;
int buyable = (money / ICE_AMERICANE);
int reaminer = (money % ICE_AMERICANE);
return new int[]{buyable, reaminer};
}
}
배열 회전 시키기
첫 번쨰 시도
package programmers;
import java.util.Arrays;
public class P120844 {
public int[] solution(int[] numbers, String direction) {
int k = 1;
int[] answer = new int[numbers.length];
if (direction.equals("right")) {
for (int i = 0; i < numbers.length; i++) {
int rotate_right_index = (i + k) % numbers.length;
answer[rotate_right_index] = numbers[i];
}
}
if (direction.equals("left")) {
for (int i = 0; i < numbers.length; i++) {
int rotate_left_index = (i - k + numbers.length) % numbers.length;
answer[rotate_left_index] = numbers[i];
}
}
return answer;
}
}
잘라서 배열로 저장하기
첫 번째 시도
class Solution {
public String[] solution(String my_str, int n) {
String[] answer = new String[3];
int count = 0;
for (int i = 0; i < my_str.length(); i++) {
if (i % n == 0) {
if (i + n < my_str.length()) {
answer[count] = my_str.substring(i, i + n);
}
if (i + n >= my_str.length()) {
answer[count] = my_str.substring(i, my_str.length());
}
count++;
}
}
return answer;
}
}
- Runtime Error나는 코드와 실패하는 케이스 섞임
- 아래와 같이 수정했더니 성공하긴함
- int array_count = (my_str.length() +n - 1) / n; String[] answer = new String[array_count];
두 번째 시도 (ChatGpt 활용)
class Solution {
public String[] solution(String my_str, int n) {
// 필요한 배열 크기 계산
int arraySize = (my_str.length() + n - 1) / n;
String[] answer = new String[arraySize];
int count = 0;
for (int i = 0; i < my_str.length(); i += n) {
int end = Math.min(i + n, my_str.length());
answer[count++] = my_str.substring(i, end);
}
return answer;
}
}
728x90
반응형
'Algorithm > Programmers' 카테고리의 다른 글
[Programmers] 코딩테스트 입문 #2 (with Python) (0) | 2024.04.25 |
---|---|
[Programmers] 코딩테스트 입문 #1 (with Python) (0) | 2024.04.24 |
[Programmers] 코딩테스트입문 - 로그인 성공? (0) | 2024.04.16 |
[Programmers] 코딩 기초 트레이닝 #8 (1) | 2023.12.02 |
[Programmers] 코딩 기초 트레이닝 #7 (0) | 2023.11.29 |