코딩테스트

프로그래머스 코딩테스트(특정 문자열로 끝나는 가장 긴 부분 문자열 찾기, 세로 읽기, 날짜 비교하기)

SOME코딩 2023. 5. 25. 00:04

<특정 문자열로 끝나는 가장 긴 부분 문자열 찾기>

문제 설명
문자열 myString과 pat가 주어집니다. myString의 부분 문자열중 pat로 끝나는 가장 긴 부분 문자열을 찾아서 return 하는 solution 함수를 완성해 주세요.

 

풀이

class Solution {
    public String solution(String myString, String pat) {
        String answer = "";
        int n = 0;
        for(int i=myString.length()-1;i>=0;i--){
            if(myString.substring(i).contains(pat)){
                n = i;
                break;
            }
        }
        return myString.substring(0,n+pat.length());
    }
}

 

다른 사람 풀이

class Solution {
    public String solution(String myString, String pat) {
        String answer = "";

        int idx = myString.lastIndexOf(pat);

        answer = myString.substring(0, idx) + pat;

        return answer;
    }
}

 

<세로 읽기>

문제 설명
문자열 my_string과 두 정수 m, c가 주어집니다. my_string을 한 줄에 m 글자씩 가로로 적었을 때 왼쪽부터 세로로 c번째 열에 적힌 글자들을 문자열로 return 하는 solution 함수를 작성해 주세요.

 

풀이

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

 

<날짜 비교하기>

문제 설명
정수 배열 date1과 date2가 주어집니다. 두 배열은 각각 날짜를 나타내며 [year, month, day] 꼴로 주어집니다. 각 배열에서 year는 연도를, month는 월을, day는 날짜를 나타냅니다.

만약 date1이 date2보다 앞서는 날짜라면 1을, 아니면 0을 return 하는 solution 함수를 완성해 주세요.

 

풀이

class Solution {
    public int solution(int[] date1, int[] date2) {
        for(int i=0;i<3;i++){
            if(date1[i]<date2[i]){
                return 1;
            } else if(date1[i]>date2[i]){
                return 0;
            }
        }
        return 0;
    }
}

 

다른 사람 풀이

import java.time.LocalDate;

class Solution {

    public int solution(int[] date1, int[] date2) {

        LocalDate dateA = LocalDate.of(date1[0], date1[1], date1[2]);
        LocalDate dateB = LocalDate.of(date2[0], date2[1], date2[2]);

        if (dateA.isBefore(dateB)) {
            return 1;
        } else {
            return 0;
        }
    }
}