TIL

TIL_20230514

번잔중 2023. 5. 14. 23:45

오늘 할 일

  • LeetCode 데일리 문제 풀기
  • Heart - 게시판 글 수정 및 삭제 이미지 처리 로직 작성하기
  • 머리 잘랐습니닷

오늘 배운 것

LeetCode 데일리 문제 풀기

  • 오늘의 문제: 2000. Reverse Prefix of Word(https://leetcode.com/problems/reverse-prefix-of-word/)
  • 난이도: easy
  • 문제 조건
    • 0으로 시작하는 인덱스를 가진 문자열 word와 문자 ch가 주어지고, 인덱스 0에서 시작하여 ch가 처음 나타나는 인덱스에서 끝나는 단어 세그먼트를 뒤집는다.(포함) 만약 ch가 word에 없는 문자라면 아무것도 하지 않는다.
      • 예를 들어, word = "abcdefd"이고 ch = "d"라면 0번 인덱스에서 시작해서 3번 인덱스(포함)의 세그먼트를 뒤집어야 한다. 결과가 되는 문제열은 "dcbaefd"이다.
    • 결과 문자열을 반환해라.
  • 문제 해결 과정
    • ch가 포함되지 않는 경우는 word를 반환한다.
    • 위의 조건에 걸리지 않았다면 ch가 포함된 곳이 있다는 의미이므로 해당 위치의 인덱스를 찾는다.
    • 그 다음 StringBuilder를 이용해서 0부터 idx까지의 문자열을 뒤집어서 붙여주고, word의 idx 이후 문자열을 이어붙인 다음 반환하면 된다.

Heart - 게시판 글 수정 및 삭제 이미지 처리 로직 작성하기

  • Request에 삭제할 이미지 목록을 같이 받아오는 방식으로 선택했습니다.
  • Controller에서는 다음과 같은 값들을 사용합니다.
    • Dto
    • Files
    • RemoveImages(StoredFileName)
  • 전체적인 느낌은 삭제할 이미지가 있다면 삭제해주고, 추가로 이미지가 필요하다면 저장해주는 방식입니다. 둘을 분리하니 신경쓸 것이 확실히 사라졌습니다.
  • 게시글을 수정하면서 이미지를 모두 삭제하는 경우에 연관관계만 없애주는 코드만 추가하면 될 것 같습니다.

느낀점

  • 리트코드 문제가 너무 어려워서 add to list를 살포시 누르고 다른 문제를 풀었습니다... 아예 준비 없이 이런식으로 풀면 안될 것 같다는 생각이 드는 요즘입니다.
  • 이미지를 삭제할 방법으로 삭제 목록을 같이 넘겨받는 방식을 선택했습니다. 삭제하고 싶은 사진에 대한 정보를 프론트 쪽에서 만들어서 리스트로 넘겨주면 할 수 있을 것 같습니다!
  • 머리가 덥수룩해져서 잘랐습니다. 몇 년간 머리를 맡겼던 선생님이 새로운 도전을 위해 잠깐 휴식기를 가지신다고 하네요. 다음 미용실이 정해지면 옮겨야겠습니다. 근데 그 동안은 어디서 자르지...!

내일 할 일

  • LeetCode 데일리 문제 풀기
  • 공모전 탐색하기!

'TIL' 카테고리의 다른 글

TIL_20230516  (0) 2023.05.16
TIL_20230515  (0) 2023.05.15
TIL_20230513  (0) 2023.05.14
TIL_20230512  (1) 2023.05.12
TIL_20230511  (0) 2023.05.11