Curriculum/AI웹개발자_내일배움캠프

Story 18. TIL

작은코딩 2022. 3. 11. 23:39

 


👀 오늘 한 일

  • 알고리즘 1문제 풀기
  • 프로젝트 모델 세팅

 

📚 오늘 배운 것

  • 장고 orm 

 

😄 오늘의 TMI

피드 좋아요 기능을 공부하면서 장고 orm 명령어를 사용하는데 {모델명}. objects.create()를 사용할 때 foreign key 타입으로 구성된 필드를 정의해주려고 하는데 pk 값으로 입력하면 아래 에러가 발생한다. 

 

ValueError: Cannot assign "1": "FeedLike.feed_id" must be a "Feed" instance.

 

전에는 pk값으로도 생성을 했던거 같은데 모델 인스턴스를 넣어달라고 하니 참조하려는 인스턴스를 select 해서 해결했지만 그 여파로 테스트 함수 몇 개가 작동하지 않아 지우게 되는 일이 생겼다. 

 

get(), filter() 함수들은 pk으로 잘 작동되는데 create() 함수 호출 시에만 생기는 문제같다.

 

오늘은 알고리즘 문제를 푸는데 2시간이 걸렸다.. 이게 레벨 1이면 나중엔 얼마나 어려운 거지? ㅜㅜ

 

 


 

오늘의 알고리즘 문제

https://programmers.co.kr/learn/courses/30/lessons/72410?language=python3 

 

코딩테스트 연습 - 신규 아이디 추천

카카오에 입사한 신입 개발자 네오는 "카카오계정개발팀"에 배치되어, 카카오 서비스에 가입하는 유저들의 아이디를 생성하는 업무를 담당하게 되었습니다. "네오"에게 주어진 첫 업무는 새로

programmers.co.kr

 

내 풀이

import re

def solution(new_id):
    # 1단계 new_id 소문자로 변경
    new_id = new_id.lower()
    # 특수문자 ~!@#$%^&*()=+[{]}:?,<>/ 제거 ( ._- 빼고 다 제거)
    new_id = re.sub(r"[^a-z0-9._-]", "", new_id)
    
    # 마침표가 연속될 경우 하나의 마침표로 치환
    id_index = len(new_id)
    repeat_remove = []
    i = 0
    while i != id_index:
        if i == id_index-1:
            repeat_remove.append(new_id[i])
        elif new_id[i] != '.':
            repeat_remove.append(new_id[i])
        else:
            if new_id[i+1] != '.':
                repeat_remove.append(new_id[i])
        i += 1

    new_id = ''.join(repeat_remove)

    # 양 끝의 마침표 삭제
    new_id = new_id.strip('.')

    # 빈 문자열이면 a 대입
    if new_id == '':
        new_id = 'a'

    # 16자 이상이면 16번째 이후로 모두 제거
    new_id = new_id[0:15]

    # 양 끝 마침표 삭제 한번 더!
    new_id = new_id.strip('.')

    # 2자 이하라면 3자가 될때까지 마지막문자 반복
    id_index = len(new_id)-1
    while id_index < 2:
        new_id = new_id + new_id[id_index]
        id_index += 1
    answer = new_id
    return answer

그래도 통과!

'Curriculum > AI웹개발자_내일배움캠프' 카테고리의 다른 글

Story 20. WIL  (4) 2022.03.14
Story 19. TIL  (0) 2022.03.12
Story 17. TIL  (0) 2022.03.11
Story 16. TIL  (0) 2022.03.09
Story 15. TIL  (0) 2022.03.09