Spring 숙련 주차 개인 과제 LV2 - 1

mil nil·2022년 12월 26일
0

TIL (Today I Learned)

목록 보기
39/74

오늘 배운 것

숙련주차 LV2 과제 시작

  • 비밀번호에 특수문자 추가
    -> 특수문자를 따로 지정하는 명려어는 없고 일일이 다 써줘야 한다.

  • 로그인 한 사용자에게 사용자/관리자 역할을 부여하는 기능 추가

-> Enum 선언

-> 관리자 암호가 함께 들어오면 ADMIN 유저로 등록된다.

-> ADMIN 계정은 해당 계정에서 작성하지 않은 게시물까지도 수정 / 편집이 가능하다.

  • return되는 Response 값 수정

-> 기존 String 반환에서 ResponseEntity로 수정하여 반환, 현재 body의 메시지만 출력됨
-> status code도 함께 출력될 수 있도록 하려고 함(추가로 찾아봐야 함)

알고리즘 문제풀이

옹알이 (1)
주어진 문자열로만 이루어진 문자열 배열의 갯수를 찾는 문제

나의 풀이

import java.util.*;

class Solution {
    public int solution(String[] babbling) {
        String[] babbles = {"aya", "ye", "woo", "ma"};
        int answer = 0;
        for (int i = 0; i < babbling.length; i++) {
            for (String st : babbles) {
                if (babbling[i].contains(st)) {
                    babbling[i] = babbling[i].replace(st,"");
                }
            }
        }
        for (String str : babbling) {
            if (str.isBlank()) {
                answer += 1;
            }
        }
        return answer;
    }
}

문자열을 공백으로 치환하여 isBlank()에 해당되는 배열의 개수를 카운트 하였다.

승윤님의 풀이

def solution(babbling):
    answer = 0
    for i in babbling:
        a = len(i)
        if i.count("aya") > 0:
            a -= 3
        if i.count("ye") > 0:
            a -= 2
        if i.count("woo") > 0:
            a -= 3
        if i.count("ma") > 0:
            a -= 2
        if a == 0:
            answer += 1
        
    return answer
  • 승윤님의 문제풀이 방식을 보면 자주 놀라곤 하는데 이 문제도 그랬다. 주어진 문자열의 길이를 값으로 잡고 주어진 문자열의 길이만큼을 빼주어 길이가 0으로 수렴하는 경우에만 카운트를 한다.
    -> 문자열을 수정하지 않고 문자열 확인 및 사칙연산만으로 계산이 가능하다. 매우 효과적인 방법인 것 같다.
profile
자바 배우는 사람

0개의 댓글