학습일기 32

이건구·2023년 10월 6일
0

프로그래머스 문제 풀이

문자열 바꿔서 찾기 lv0

class Solution {
    public int solution(String myString, String pat) {
        String str = "";
        int answer = 0;
        for (int i = 0; i < myString.length(); i++) {
            if (myString.substring(i,i+1).equals("A")) {
                str += "B";
            } else {
                str += "A";
            }
        }
        if (str.contains(pat)) {
            answer = 1;
        }
        return answer;
    }
}

치환시켜주는 함수인 rplace()를 사용하면 될거같은데, 그렇게하면 둘중 하나로 다 바뀌게되버린다.

그래서 새로운 String 타입의 문자열을 만들어주고 myString을 substring으로 하나하나 equals에 넣어서 비교를한다음에 "A"가 나오면 B를 str에 더해주었다.

myString은 "A"와 "B"로 이루어졌다고 했기때문에 else로 "B"가 나오면 A를 str에 더해주면된다.

5명씩 lv0

class Solution {
    public String[] solution(String[] names) {
        String[] answer;
        if (names.length % 5 == 0) {
            answer = new String[names.length/5];
        } else {
            answer = new String[names.length/5+1];
        }
        int k = 0;
        for (int i = 0; i < names.length; i++) {
            if (i%5==0) {
                answer[k] = names[i];
                k++;
            }
        }
        return answer;
    }
}

우선 배열의 길이를 정해줘야해서 String[] answer;을 선언해주고 조건문을통해 names의 길이를 5로 나눴을때 0이되는 즉 원소의갯수가 5의 배수일 경우엔 answer의 길이를 원소의갯수/5로 하고 아닐경우엔 1을 더해준다.

그리고 answer배열의 인덱스가 되어줄 정수 k를 선언해주고 반복문을통해 names의 인덱스가 5로 나눠떨어질때 answer에 해당 원소를 추가해준다. 그리고 k를 증가시켜준다.

0개의 댓글