[크래프톤 정글 2기] Day 8

2023. 5. 11. 22:14·크래프톤 정글 2기

회고


2023-04-10


한솥을 자주 시켜먹는다. 요즘같은 고물가 시대에 싸고 양 많고 맛있다. 한솥은 완벽하다.

오늘도 하루종일 알고리즘 공부했다. 11시 출석, 12시 점심, 18시 저녁, 24시 종료. 하루종일 앉아서 백준만 풀면서 알고리즘 공부만 하려니 지겹다..

TIL


list의 append()와 +연산 성능 비교

append()와 +연산 성능 비교

  1. List Concatnation

    • 리스트 객체는 변경가능 객체

  • int형, tuple형, str형 객체는 변경 불가능(immuatble) 객체
  • 리스트의 append() 메소드는 객체의 내용을 변경시킴
  • 리스트의 + 연산은 객체로 복사해서 다시 바인딩(리바인딩) 함
  • 리바인딩은 시간이 많이 걸린다
  • 리스트 객체의 append()는 상대적으로 빨리 수행된다

추가

a = []
app = a.append

for i in range(5):
    app(i)

a.append()는 라이브러리에서 호출하기 때문에 루프 밖에서 미리 호출하는 것이 조금 더 빠르다고 한다.

  1. List Append
    리스트 성능 향상 트릭
    그러나 단순 요소 추가에선 a.append()는 느리다. 요소를 추가할 때마다 메모리 재할당이 이루어지기 때문. list comprehension이나 map()을 쓰는 것이 속도가 빠르다고 한다.

정리

  • 리바인딩은 시간이 많이 소요
  • 그래서 성능이 좋지 않음
  • 파이썬은 느리다고 불평하는 경우가 이 경우
  • 하지만 numpy를 사용하면 C와 비슷한 속도를 얻을 수 있다.
  • +연산 말고 append() 쓰자.

N-Queen

1년 전에 C++로 풀었던 N-Queen이다. 백트래킹과 재귀의 대표적인 백준 문제. Python으로 문제를 풀고보니 예전에 풀었던 방식과 똑같이 풀어버렸다. 그런데 C++ 로직을 그대로 Python으로 옮긴 코드는 시간 초과가 난다. 언어설정을 PyPy3로 바꾸니 통과했다.. Python은 역시 느려터졌다.

동료들의 얘기를 들어보니 파이썬 교재의 8-Queen 알고리즘을 적용하면 문제없이 풀 수 있다고 한다. 8-Queen 알고리즘 로직은 생각도 못해본 방식이다. 어떻게 하는거냐..

파이썬 코드 스타일

[파이썬 코드 스타일]에 관한 좋은 문서를 발견했다. 내일 중으로 제대로 읽어봐야겠다.

리액트

알고리즘만 하기엔 좀이 쑤셔서 니꼬 강의를 1시간 정도 들었다. 문법 정리하는건 별 의미없을 것 같으니 그냥 듣기만 한다. 빨리 리액트 네이티브 배우고 싶네.

참고

  • https://blogofth-lee.tistory.com/301
  • https://velog.io/@inhwa1025/BOJ-9663%EB%B2%88-N-Queen-Python-%ED%8C%8C%EC%9D%B4%EC%8D%AC
  • https://seongonion.tistory.com/103

'크래프톤 정글 2기' 카테고리의 다른 글

[크래프톤 정글 2기] Day 10  (0) 2023.05.11
[크래프톤 정글 2기] Day 9  (0) 2023.05.11
[크래프톤 정글 2기] Day 7  (0) 2023.05.11
[크래프톤 정글 2기] Day 6  (0) 2023.05.11
[크래프톤 정글 2기] Day 5  (0) 2023.05.11
'크래프톤 정글 2기' 카테고리의 다른 글
  • [크래프톤 정글 2기] Day 10
  • [크래프톤 정글 2기] Day 9
  • [크래프톤 정글 2기] Day 7
  • [크래프톤 정글 2기] Day 6
KimCookieYa
KimCookieYa
무엇이 나를 살아있게 만드는가
  • KimCookieYa
    쿠키의 주저리
    KimCookieYa
  • 전체
    오늘
    어제
    • 분류 전체보기 (573) N
      • 혼잣말 (87)
      • TIL (2)
      • 커리어 (24)
        • Sendy (21)
        • 외부활동 기록 (2)
      • 프로젝트 (186)
        • 티스토리 API (5)
        • 코드프레소 체험단 (89)
        • Web3 (3)
        • Pint OS (16)
        • 나만무 (14)
        • 대회 (6)
        • 정글 FE 스터디 (16)
        • MailBadara (12)
        • github.io (1)
        • 인공지능 동아리, AID (5)
        • 졸업과제 (18)
        • OSSCA 2024 (1)
      • 크래프톤 정글 2기 (80)
      • IT (168) N
        • 코딩 (4)
        • CS (18)
        • 에러 (5)
        • 블록체인 (23)
        • Front-End (39) N
        • 알고리즘&자료구조 정리 (3)
        • 코딩테스트 (3)
        • BOJ 문제정리 (41)
        • WILT (12)
        • ML-Agents (4)
        • 강화학습 (1)
        • Android (0)
        • LLM (2)
      • 전공 (1)
        • 머신러닝 (1)
      • 자기계발 (20)
        • 빡공단X베어유 (2)
        • 독서 (15)
  • 블로그 메뉴

    • 홈
    • 방명록
    • Github
    • Velog
    • 관리
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    코드프레소
    해커톤
    핀토스
    RNN
    Flutter
    딥러닝
    머신러닝
    docker
    위상정렬
    Pint OS
    나만무
    numpy
    리액트
    pintos
    JavaScript
    react
    알고리즘
    자바스크립트
    글리치해커톤
    졸업과제
    OS
    프로그래머스
    MailBadara
    부산대
    니어프로토콜
    크래프톤정글
    파이썬
    NEAR Protocol
    사이드프로젝트
    블록체인
  • hELLO· Designed By정상우.v4.10.3
KimCookieYa
[크래프톤 정글 2기] Day 8
상단으로

티스토리툴바