[문제 설명]

문자열 my_string, overwrite_string과 정수 s가 주어집니다. 문자열 my_string의 인덱스 s부터 overwrite_string의 길이만큼을 문자열 overwrite_string으로 바꾼 문자열을 return 하는 solution 함수를 작성해 주세요.

 

[제한사항]

  • my_string와 overwrite_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 ≤ overwrite_string의 길이 ≤ my_string의 길이 ≤ 1,000
  • 0 ≤ s ≤ my_string의 길이 - overwrite_string의 길이

[solution]

// substring 미사용

class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        
        for(int i = 0; i < s ; i++){
            answer += my_string.charAt(i);
        }
        
        for(int i = 0; i < overwrite_string.length(); i++){
            answer += overwrite_string.charAt(i);
        }
        
        for(int i = overwrite_string.length() + s; i < my_string.length(); i++) {
        	answer += my_string.charAt(i);
        }
        
        return answer;
    }
}
// substring 사용
class Solution {
    public String solution(String my_string, String overwrite_string, int s) {
        String answer = "";
        
        answer = my_string.substring(0, s) + overwrite_string +
            my_string.substring(s+overwrite_string.length());
        
        return answer;
    }
}

[문제 설명]

영어 알파벳으로 이루어진 문자열 str이 주어집니다. 각 알파벳을 대문자는 소문자로 소문자는 대문자로 변환해서 출력하는 코드를 작성해 보세요.

 

[제한사항]

  • 1 ≤ str의 길이 ≤ 20
    • str은 알파벳으로 이루어진 문자열입니다.

[solution]

import java.util.Scanner;

public class Solution {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        String a = sc.next();
        
        String temp = "";
        
        for(int i = 0; i < a.length(); i++){
        	if('a'<= a.charAt(i) && a.charAt(i) <= 'z') {
        		temp += Character.toUpperCase(a.charAt(i));
        	} else if ('A'<= a.charAt(i) && a.charAt(i) <= 'Z') {
        		temp += Character.toLowerCase(a.charAt(i));
        	}
        }
        a = temp;
        System.out.println(a);

    }
}

[문제 설명]

정수 배열 arr와 2개의 구간이 담긴 배열 intervals가 주어집니다. intervals는 항상 [[a1, b1], [a2, b2]]의 꼴로 주어지며 각 구간은 닫힌 구간입니다. 닫힌 구간은 양 끝값과 그 사이의 값을 모두 포함하는 구간을 의미합니다. 이때 배열 arr의 첫 번째 구간에 해당하는 배열과 두 번째 구간에 해당하는 배열을 앞뒤로 붙여 새로운 배열을 만들어 return 하는 solution 함수를 완성해 주세요.

 

 

[제한사항]

  • 1 ≤ arr의 길이 ≤ 100,000
    • 1 ≤ arr의 원소 < 100
  • 1 ≤ a1 ≤ b1 < arr의 길이
  • 1 ≤ a2 ≤ b2 < arr의 길이

[solution]

import java.util.ArrayList;

class Solution {
    public int[] solution(int[] arr, int[][] intervals) {
        ArrayList<Integer> result = new ArrayList<>();
        
        for(int i = 0; i < intervals.length; i++){
            for(int j = intervals[i][0]; j <= intervals[i][1]; j++) {
				result.add(arr[j]);
			}
        }
        int[] answer = new int[result.size()];
		
        for(int i = 0; i < answer.length; i++ ) {
			answer[i] = result.get(i);
		}
        
        return answer;
    }
}

 

[문제 설명]

문자열 배열 intStrs와 정수 k, s, l가 주어집니다. intStrs의 원소는 숫자로 이루어져 있습니다. 배열 intStrs의 각 원소마다 s번 인덱스에서 시작하는 길이 l짜리 부분 문자열을 잘라내 정수로 변환합니다. 이때 변환한 정수값이 k보다 큰 값들을 담은 배열을 return 하는 solution 함수를 완성해 주세요.

 

[제한사항]

  • 0 ≤ s < 100
  • 1 ≤ l ≤ 8
  • 10l - 1 ≤ k < 10l
  • 1 ≤ intStrs의 길이 ≤ 10,000
    • s + l ≤ intStrs의 원소의 길이 ≤ 120

[solution]

 

// 1
import java.util.ArrayList;

class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        
        ArrayList<Integer> result = new ArrayList<>();
        
        for(int i = 0; i < intStrs.length; i++){
            String temp = "";
            for(int j = s; j < s+l; j++){
                temp += intStrs[i].charAt(j);
            }
            if(Integer.parseInt(temp) > k){
                result.add(Integer.parseInt(temp));
            }
        }
        
        int[] answer = new int[result.size()];
        
        for(int i = 0; i < result.size(); i++){
            answer[i] = result.get(i);
        }
        
        return answer;
    }
}
// 2
class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        
        int size = 0;
        
        for(int i = 0; i < intStrs.length; i++){
            String temp = "";
            for(int j = s; j < s+l; j++){
                temp += intStrs[i].charAt(j);
            }
            if(Integer.parseInt(temp) > k){
                size ++;
            }
        }
        
        int[] answer = new int[size];
        int count = 0;
        
        for(int i = 0; i < intStrs.length; i++){
            String temp = "";
            for(int j = s; j < s+l; j++){
                temp += intStrs[i].charAt(j);
            }
            if(Integer.parseInt(temp) > k){
                answer[count++] = Integer.parseInt(temp);
            }
        }
        return answer;
    }
}

[문제 설명]

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 뒤의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

 

[제한 사항]

  • my_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 <= my_string 의 길이 <= 1,000
  • 1 <= n <= my_string의 길이

[solution]

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        
        for(int i = my_string.length() - n; i < my_string.length(); i++){
            answer += my_string.charAt(i);
        }
        return answer;
    }
}

'Coding Test > 코딩 기초 트레이닝' 카테고리의 다른 글

[기초 #6] 배열 만들기 3  (1) 2024.06.11
[기초 #5] 배열 만들기 5  (0) 2024.06.10
[기초 #3] 문자열 앞의 n글자  (0) 2024.06.10
[기초 #2] 배열 만들기1  (0) 2024.06.10
[기초 #1] 카운트 다운  (0) 2024.06.10

[문자 설명]

문자열 my_string과 정수 n이 매개변수로 주어질 때, my_string의 앞의 n글자로 이루어진 문자열을 return 하는 solution 함수를 작성해 주세요.

 

[제한 사항]

  • my_string은 숫자와 알파벳으로 이루어져 있습니다.
  • 1 <= my_string의 길이 <= 1,000
  • 1 <= n <= my_string의 길이

 

[solution]

class Solution {
    public String solution(String my_string, int n) {
        String answer = "";
        
        for(int i = 0; i < n; i++){
            answer += my_string.charAt(i);
        }
        return answer;
    }
}

'Coding Test > 코딩 기초 트레이닝' 카테고리의 다른 글

[기초 #6] 배열 만들기 3  (1) 2024.06.11
[기초 #5] 배열 만들기 5  (0) 2024.06.10
[기초 #4] 문자열의 뒤의 n글자  (0) 2024.06.10
[기초 #2] 배열 만들기1  (0) 2024.06.10
[기초 #1] 카운트 다운  (0) 2024.06.10

[문제 설명]

정수 n과 k가 주어졌을 때, 1이상 n이하의 정수 중에서 k의 배수를 오름차순으로 저장한 배열을 return하는 solution함수를 완성해 주세요.

 

[제한사항]

  • 1 <=  n <= 1,000,000
  • 1 <= k <= min(1,000, n)

[solution]

class Solution {
    public int[] solution(int n, int k) {
        int[] answer = new int[n/k];
        
        for(int i = 0; i < answer.length; i++){
            answer[i] = (i+1) * k;
        }
        return answer;
    }
}

[문제설명]

정수 start_num와 end_num가 주어질 때, start_num에서 end_num까지 1씩 감소하는 수들을 차례대로 담은 리스트를 return 하도록 soloution함수를 완성해 주세요.

 

[제한사항]

  • 0 <= end_num <= start_num <= 50

[solution]

class Solution {
    public int[] solution(int start, int end_num) {
        int[] answer = new int[start - end_num + 1];
        int temp = start;
        
        for(int i = 0; i <= start - end_num; i++){
            answer[i] = temp--;
        }
        return answer;
    }
}

+ Recent posts