본문 바로가기
일지/취준일기

2024_12_16 취준일기 17일차

by 알케니브 2024. 12. 16.

오늘의 계획

1. 코드 공부

내용

 

 


2. 프로그래머스 코딩 테스트

문제1.

문자열 my_string과 정수 배열 index_list가 매개변수로 주어집니다. my_string의 index_list의 원소들에 해당하는 인덱스의 글자들을 순서대로 이어 붙인 문자열을 return 하는 solution 함수를 작성해 주세요.

제한사항: 

  • 1 ≤ my_string의 길이 ≤ 1,000
  • my_string의 원소는 영소문자로 이루어져 있습니다.
  • 1 ≤ index_list의 길이 ≤ 1,000
  • 0 ≤ index_list의 원소 < my_string의 길이

입출력 예

my_string index_list result
"cvsgiorszzzmrpaqpe" [16, 6, 5, 3, 12, 14, 11, 11, 17, 12, 7] "programmers"
"zpiaz" [1, 2, 0, 0, 3] "pizza"
  • 입출력 예 #1: 예제 1번의 my_string에서 인덱스 3, 5, 6, 11, 12, 14, 16, 17에 해당하는 글자는 각각 g, o, r, m, r, a, p, e이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, r, o, g, r, a, m, m, e, r, s입니다. 따라서 "programmers"를 return 합니다.
  • 입출력 예 #2: 예제 2번의 my_string에서 인덱스 0, 1, 2, 3에 해당하는 글자는 각각 z, p, i, a이므로 my_string에서 index_list에 들어있는 원소에 해당하는 인덱스의 글자들은 각각 순서대로 p, i, z, z, a입니다. 따라서 "pizza"를 return 합니다.
class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = "";
        return answer;
    }
}

 

풀이과정

:

 

정답

class Solution {
    public String solution(String my_string, int[] index_list) {
        String answer = "";
        String[] stringArr = my_string.split("");
        
        for(int i = 0; i < index_list.length; i++) {
            answer += stringArr[index_list[i]];
        }
        
        return answer;
    }
}

 

++ 다른사람의 풀이


 

문제2.

음이 아닌 정수를 9로 나눈 나머지는 그 정수의 각 자리 숫자의 합을 9로 나눈 나머지와 같은 것이 알려져 있습니다.
이 사실을 이용하여 음이 아닌 정수가 문자열 number로 주어질 때, 이 정수를 9로 나눈 나머지를 return 하는 solution 함수를 작성해주세요.

제한사항: 

  • 1 ≤ number의 길이 ≤ 100,000
  • number의 원소는 숫자로만 이루어져 있습니다.
  • number는 정수 0이 아니라면 숫자 '0'으로 시작하지 않습니다.S

입출력 예

number result
"123" 6
"78720646226947352489" 2
  • 입출력 예 #1: 예제 1번의 number는 123으로 각 자리 숫자의 합은 6입니다. 6을 9로 나눈 나머지는 6이고, 실제로 123 = 9 × 13 + 6입니다. 따라서 6을 return 합니다.
  • 입출력 예 #2: 예제 2번의 number는 78720646226947352489으로 각자리 숫자의 합은 101입니다. 101을 9로 나눈 나머지는 2이고, 실제로 78720646226947352489 = 9 × 8746738469660816943 + 2입니다. 따라서 2를 return 합니다.
class Solution {
    public int solution(String number) {
        int answer = 0;
        return answer;
    }
}

 

풀이과정

위에거랑 비슷할듯...? 합을 sum으로 선언했다

 

정답

class Solution {
    public int solution(String number) {
        int answer = 0;
        int sum = 0;
        String list[] = number.split("");
        
        for(int i = 0; i < list.length; i++) {
           sum += Integer.parseInt(list[i]);  
        }
        
        answer = sum % 9;
        
        return answer;
    }
}

++ 다른사람의 풀이

 


문제3.

문자열 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: 예제 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) {
        String answer = "";
        return answer;
    }
}

 

풀이과정

얘는 좀 어려워서 찾아봤다... 대부분이 for문안에 뒤집을 부분의 첫번째와 마지막을 선언하였다. 그리고 substring을 이용하여 문자열을 자르고 reverse 메소드를 이용하는 방법의 코드가 맘에 들어 참고하였다

 

 

정답

import java.lang.StringBuilder;

class Solution {
    public String solution(String my_string, int[][] queries) {
        StringBuilder sb = new StringBuilder(my_string);
        
        for(int i = 0; i < queries.length; i++) {
            int first = queries[i][0];
            int last = queries[i][1];
            String substring = sb.substring(first, last + 1);
            
            StringBuilder reverseSub = new StringBuilder(substring).reverse();
            
            sb.replace(first, last + 1 , reverseSub.toString());
        }
        
        String answer = sb.toString();
        
        return answer;
    }
}

 

++ 다른사람의 풀이


문제4.

제한사항: 

입출력 예

  • 입출력 예 #1
  • 입출력 예 #2

 



풀이과정

:

 

 

 



정답

 

 

++ 다른사람의 풀이


문제5.

제한사항: 

입출력 예

  • 입출력 예 #1
  • 입출력 예 #2

 



풀이과정

:

 

 

 



정답

 

 

++ 다른사람의 풀이

 


3. 이력서/지원/면접 준비 활동

'일지 > 취준일기' 카테고리의 다른 글

2025_01_14 취준일기 19일차  (0) 2025.01.14
2024_12_19 취준일기 18일차  (1) 2024.12.19
2024_12_12 취준일기 16일차  (0) 2024.12.12
2024_12_11 취준일기 15일차  (0) 2024.12.11
2024_12_09 취준일기 14일차  (3) 2024.12.09