코테 준비 12일차_8/22

Jieun·5일 전

코딩테스트 준비

목록 보기
5/8
  1. 접미사 배열
    우선 가능한 접미사들 다 추출하고 사전순이니까 오름차순 정렬하면 될거같음
    근데 가능한 접미사들을 어떻게 추출해야 될까
    전체 문자열에서 하나씩 빼면 될려나
  • 초기 정답
class Solution {
    public String[] solution(String my_string) {
        String[] answer = {my_string.length};
        for(int i=0;i<my_string;i++) {
            answer[i] = my_string[i];
        }
        
        return answer.asc();
    }
}

방향은 맞는데 문법을 몰라서 구현에 실패한듯

  • 제출 정답
import java.util.Arrays;
class Solution {
    public String[] solution(String my_string) {
        String[] answer = new String[my_string.length()];
        for(int i=0;i<my_string.length();i++) {
            answer[i] = my_string.substring(i);
        }
        Arrays.sort(answer);
        return answer;
    }
}

my_string.substring(i)를 사용하면 인덱스 i부터 끝까지의 문자열을 자를 수 있음
반복문으로 접미사들을 배열에 다 담은 다음, Arrays.sort(answer)로 사전순(오름차순) 정렬하면 됨

  1. 접미사인지 확인하기
    이전 문제처럼 접미사들 다 추출하고 배열에 있는 값이면 1 아니면 0 반환하게 만들면 될듯
  • 초기 정답
class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        String [] sub = new String[my_string.length()];
        for(int i=0;i<my_string.length();i++) {
            sub[i] = my_string.substring(i);
        }
        if(sub.isPresent(is_suffix)) {
            answer =1;
        } else answer =0;
        return answer;
    }
}

my_string.endsWith(is_suffix)를 사용하면 my_string이 is_suffix로 끝나는지(즉, 접미사가 맞는지)를 true 또는 false로 바로 리턴 가능함 -> 이걸 상항 연산자와 엮으면 간단해짐

  • 제출 정답
class Solution {
    public int solution(String my_string, String is_suffix) {
        int answer = 0;
        String [] sub = new String[my_string.length()];
        for(int i=0;i<my_string.length();i++) {
            sub[i] = my_string.substring(i);
        }
        return my_string.endsWith(is_suffix) ? 1 : 0;
    }
}
  • 다른 정담
class Solution {
    public int solution(String my_string, String is_suffix) {
        // my_string이 is_suffix로 끝나면 1, 아니면 0 리턴
        return my_string.endsWith(is_suffix) ? 1 : 0;
    }
}

이렇게만 해도 구현 가능함

3.접두사인지 확인하기
아까처럼 endsWith 쓰면 될거같음

  • 초기 정답
class Solution {
    public int solution(String my_string, String is_prefix) {
        
        return my_string.endsWith(is_prefix) ? 1: 0;
    }
}

테스트 5개 중에 1개 실패함 -> 얘는 접두사여서 startsWith()을 써야함

  • 제출 정답
class Solution {
    public int solution(String my_string, String is_prefix) {
        
        return my_string.startsWith(is_prefix) ? 1: 0;
    }
}
profile
비전공자의 백엔드 생존기: 어제보다 1% 더 성장하기

0개의 댓글