코딩 기초 트레이닝 7

2023. 9. 4. 22:22·알고리즘/프로그래머스

문자열 여러 번 뒤집기

문제 설명
문자열 my_string과 이차원 정수 배열 queries가 매개변수로 주어집니다. queries의 원소는 [s, e] 형태로, my_string의 인덱스 s부터 인덱스 e까지를 뒤집으라는 의미입니다. my_string에 queries의 명령을 순서대로 처리한 후의 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항
my_string은 영소문자로만 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
queries의 원소는 [s, e]의 형태로 0 ≤ s ≤ e < my_string의 길이를 만족합니다.
1 ≤ queries의 길이 ≤ 1,000


입출력 예
my_string queries result
"rermgorpsam" [[2, 3], [0, 7], [5, 9], [6, 10]] "programmers"


입출력 예 설명
예제 1번의 my_string은 "rermgorpsam"이고 주어진 queries를 순서대로 처리하면 다음과 같습니다.

queries my_string
"rermgorpsam"
[2, 3] "remrgorpsam"
[0, 7] "progrmersam"
[5, 9] "prograsremm"
[6, 10] "programmers"
따라서 "programmers"를 return 합니다.


내 풀이

class Solution {
    public String solution(String my_string, int[][] queries) {
        char[] arr = my_string.toCharArray();
        for (int[] query : queries) {
            int start = query[0];
            int end = query[1];
            for (int j = start; j <= (start + end) / 2; j++) {
                char temp = arr[j];
                arr[j] = arr[start + end - j];
                arr[start + end - j] = temp;
            }
        }
        
        return new String(arr);
    }
}

배열 만들기 5

문제 설명
문자열 배열 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


입출력 예
intStrs k s l result
["0123456789","9876543210","9999999999999"] 50000 5 5 [56789, 99999]


입출력 예 설명
입출력 예 #1
idx에 따라 잘라낸 문자열과 그에 따른 ret의 변화를 표시하면 다음 표와 같습니다.
idx 잘라낸 문자열 ret
0 "56789" [56789]
1 "43210" [56789]
2 "99999" [56789, 99999]
따라서 [56789, 99999]를 return 합니다.


내 풀이

class Solution {
    public int[] solution(String[] intStrs, int k, int s, int l) {
        int[] answer = new int[intStrs.length];
        int count = 0;
        for (String str : intStrs) {
            int intStr = Integer.parseInt(str.substring(s, s+l));
            if (intStr > k) {
                answer[count] = intStr;
                count++;
            }
        }
        
        int[] result = new int[count];
        System.arraycopy(answer, 0, result, 0, count);
        
        return result;
    }
}

부분 문자열 이어 붙여 문자열 만들기

문제 설명
길이가 같은 문자열 배열 my_strings와 이차원 정수 배열 parts가 매개변수로 주어집니다. parts[i]는 [s, e] 형태로, my_string[i]의 인덱스 s부터 인덱스 e까지의 부분 문자열을 의미합니다. 각 my_strings의 원소의 parts에 해당하는 부분 문자열을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항
1 ≤ my_strings의 길이 = parts의 길이 ≤ 100
1 ≤ my_strings의 원소의 길이 ≤ 100
parts[i]를 [s, e]라 할 때, 다음을 만족합니다.
0 ≤ s ≤ e < my_strings[i]의 길이


입출력 예
my_strings parts result
["progressive", "hamburger", "hammer", "ahocorasick"] [[0, 4], [1, 2], [3, 5], [7, 7]] "programmers"


입출력 예 설명
입출력 예 #1
예제 1번의 입력을 보기 좋게 표로 나타내면 다음과 같습니다.

i my_strings[i] parts[i] 부분 문자열
0 "progressive" [0, 4] "progr"
1 "hamburger" [1, 2] "am"
2 "hammer" [3, 5] "mer"
3 "ahocorasick" [7, 7] "s"
각 부분 문자열을 순서대로 이어 붙인 문자열은 "programmers"입니다. 따라서 "programmers"를 return 합니다.


내 풀이

class Solution {
    public String solution(String[] my_strings, int[][] parts) {
        String answer = "";
        int count = 0;
        for (int[] part : parts) {
            int start = part[0];
            int end = part[1];
            answer += my_strings[count].substring(start, end + 1);
            count++;
        }
        return answer;
    }
}

문자열의 뒤의 n글자

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

제한사항
my_string은 숫자와 알파벳으로 이루어져 있습니다.
1 ≤ my_string의 길이 ≤ 1,000
1 ≤ n ≤ my_string의 길이

입출력 예
my_string n result
"ProgrammerS123" 11 "grammerS123"
"He110W0r1d" 5 "W0r1d"

입출력 예
입출력 예 #1
예제 1번의 my_string에서 뒤의 11글자는 "grammerS123"이므로 이 문자열을 return 합니다.

입출력 예 #2
예제 2번의 my_string에서 뒤의 5글자는 "W0r1d"이므로 이 문자열을 return 합니다.


내 풀이

class Solution {
    public String solution(String my_string, int n) {
        return my_string.substring(my_string.length() - n);
    }
}

간략해서 기쁘다.


 

저작자표시 비영리 (새창열림)

'알고리즘 > 프로그래머스' 카테고리의 다른 글

코딩 기초 트레이닝 9  (1) 2023.09.18
코딩 기초 트레이닝 8  (0) 2023.09.15
코딩 기초 트레이닝 6  (2) 2023.09.03
코딩 기초 트레이닝 5  (0) 2023.08.04
코딩 기초 트레이닝 4  (0) 2023.08.02
'알고리즘/프로그래머스' 카테고리의 다른 글
  • 코딩 기초 트레이닝 9
  • 코딩 기초 트레이닝 8
  • 코딩 기초 트레이닝 6
  • 코딩 기초 트레이닝 5
요술공주밍키
요술공주밍키
조금씩이라도 꾸준히..
  • 요술공주밍키
    삽질의흔적
    요술공주밍키
  • 전체
    오늘
    어제
    • 분류 전체보기 (139)
      • Java (42)
        • Spring Boot (14)
        • Spring Boot 게시판 (14)
        • 공중화장실 찾기 (4)
        • 쇼핑몰 (8)
      • JavaScript (8)
        • NodeJS (2)
      • Python (5)
        • Django (4)
      • Server (10)
        • Docker (4)
        • K8S (0)
        • Jenkins (1)
      • 알고리즘 (24)
        • 프로그래머스 (19)
        • 백준 (5)
      • Etc (21)
        • 개발 팁 (1)
      • 일상 (27)
        • 독서 포스트 (25)
        • 회고록 (2)
  • 인기 글

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.1
요술공주밍키
코딩 기초 트레이닝 7
상단으로

티스토리툴바