[2023.08.17] Java 문제

이재하·2023년 8월 17일
0

항해99

목록 보기
22/48

오늘 푼 문제들과 풀이 정리

n개 간격의 원소들

import java.util.*;

class Solution {
    public List<Integer> solution(int[] num_list, int n) {
        List<Integer> answer = new ArrayList<>(); // 정수 리스트로 정답을 저장할 ArrayList 생성
        
        for (int i = 0; i < num_list.length; i += n) { // 입력 배열을 n만큼 건너뛰며 반복
            answer.add(num_list[i]); // 현재 위치의 요소를 정답 리스트에 추가
        }
        
        return answer; // 최종 정답 리스트 반환
    }
}

이 문제는 풀이 법이 생각이 나지 않아 다른 사람의 풀이를 보았다.
컬렉션을 사용하는게 익숙하지 않아서 컬렉션을 다시 봐야겠다.

뒤에서 5등 위로

import java.util.Arrays;

class Solution {
    public int[] solution(int[] num_list) {
        int[] answer = {};
        Arrays.sort(num_list);
        answer = Arrays.copyOfRange(num_list, 5, num_list.length);
        return answer;
    }
}

문자열 정수의 합

class Solution {
    public int solution(String num_str) {
        int answer = 0;
        String[] numArr= num_str.split("");
        for (String num : numArr){
            answer += Integer.parseInt(num);
        }
        return answer;
    }
}

글자 이어 붙여 문자열 만들기

class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = ""; // 결과 문자열을 저장할 변수

        for(int i=0; i<index_list.length; i++){ // index_list 배열의 각 인덱스를 반복하면서
            answer += my_string.charAt(index_list[i]); // 주어진 문자열에서 해당 인덱스의 문자를 결과 문자열에 추가
        }

        return answer; // 최종 결과 문자열 반환
    }
}

for each 문으로 풀이도 가능하다

class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = ""; // 결과 문자열을 저장할 변수

        String[] str = my_string.split(""); // 주어진 문자열을 하나씩 분리하여 배열로 저장

        for(int index : index_list) { // index_list 배열을 반복하면서
            answer += str[index]; // 해당 인덱스의 문자를 결과 문자열에 추가
        }

        return answer; // 최종 결과 문자열 반환
    }
}

특정한 문자를 대문자로 바꾸기

class Solution {
    public String solution(String my_string, String alp) {
        String answer = "";
        answer = my_string.replace(alp, alp.toUpperCase());
        return answer;
    }
}

카운트 다운

class Solution {
    public int[] solution(int start, int end) {
        int[] answer = new int[start - end + 1];
        
        for(int i = 0; i <= start - end; i++){
            answer[i] = start - i;
        }
        
        return answer;
    }
}
class Solution {
    public int[] solution(int start, int end) {
        int[] answer = new int[start - end + 1]; // 결과 배열 생성

        int a = 0; // 인덱스 카운터 초기화

        for (int i = start; i >= end; i--) { // 주어진 범위 내의 정수를 역순으로 반복
            answer[a] = i; // 현재 값 i를 결과 배열에 추가
            a++; // 인덱스 카운터 증가
        }

        return answer; // 최종 결과 배열 반환
    }
}

결과 배열을 생성하지 않아서 원하는 값이 출력되지 않았다.

0개의 댓글