[TIL/크래프톤 정글] Day 5

2024. 9. 7. 03:12·활동/크래프톤 정글

서적 : Do it! 자료구조와 함께 배우는 알고리즘 입문(파이썬 편)


[크래프톤 정글] TIL - 240906

7일이지만, 아직 수면을 취하기 전이니까 TIL이라고 할 수 있다...... 나는 그렇게 믿고 싶다.

 

 

*해당 게시글은 단순히 공부한 내용과 일기를 작성한 글입니다!


순서도 기호 살펴보기

순서도(Flowchart)는 문제를 정의, 분석하고 해결하는 방법을 그림으로 표현하며, 다음과 같은 기호들이 존재한다.

  1. 실행할 연산을 나타내는 기호
  2. 제어 흐름을 나타내는 선 기호
  3. 프로그램 순서도를 이해하거나 작성하는 데 편리한 특수 기호

 

기호 정리

  • 데이터
    • 기억 장치를 지정하지 않은 데이터 자체를 나타낸다.
  • 처리
    • 여러 종류의 처리를 나타낸다.
    • 정보의 값, 타입, 위치, 등을 바꾸도록 한 연산이나 연산 집합의 실행, 또는 연속하는 몇 가지 흐름 가운데 하나의 방향을 결정하는 연산이나 연산 집합의 실행을 나타낸다.
  • 미리 정의한 처리
    • 서브루틴이나 모듈 등, 다른 곳에서 이미 정의한 처리를 의미한다.
  • 판단
    • 조건에 따라서 판단되는 기능을 나타낸다.
  • 루프 범위
    • 두 부분으로 구성되며 루프의 시작과 종료를 나타낸다.
      • 2개의 루프 범위에는 같은 이름을 표기한다.
  • 선
    • 제어의 흐름을 나타낸다. 흐름의 방향을 분명히 할 때는 화살표를 사용한다.
  • 단말
    • 외부 환경으로 나가거나 외부 환경에서 들어오는 것을 나타낸다.
    • 주로 프로그램의 시작이나 종료를 나타낸다.

 

가우스의 덧셈

가우스 덧셈 공식 : n * (n + 1) / 2

가우스 덧셈 공식을 통해서도 1부터 N까지 정수의 합을 구할 수 있다.

  • N = 5
    • 5 * ( 5 + 1 ) / 2 = 15
    • 1 + 2 + 3 + 4 + 5 = 15
sum = n * (n + 1) // 22

나누기 연산자와 몫 연산자

# 나누기 연산자
/
# 몫 연산자
//

# 10 / 3
10 / 3 # 3.33333...

# 10 // 3
10 // 3 # 3

Range() 함수

range() 함수는 각 인자에 따라 다음과 같은 iterable 객체를 생성한다.

  1. range(n)
    • 0 이상 n 미만의 수를 차례로 나열하는 수열
  2. range(a, b)
    • a 이상 b 미만의 수를 차례로 나열하는 수열
  3. range(a, b, step)
    • a 이상 b 미만의 수를 step 간격으로 나열하는 수열

드모르간 법칙

각 조건을 부정하고 논리곱을 논리합으로, 논리합을 논리곱으로 바꾸고 다시 전체를 부정하면 원래의 조건과 같다.

if not(no < 10 or no > 99)
# 와
no >= 10 and no <= 99
# 는 동일하다.

# 반복 종료 조건 
# no >= 10 and no <= 99
# not(no < 10 or no > 99)
# no가 10 이상 99 이하

Python에서 객체란?

데이터, 함수, 클래스, 모듈, 패키지 등을 모두 객체(Object)로 취급한다. 객체는 자료형(Data Type)을 가지며 메모리(저장 공간)를 점유하고 있다. Python의 변수는 값을 갖지 않는다는 특성을 가진다.

  • 변수는 객체를 참조하는 객체에 연결된 이름에 불과합니다.
  • 모든 객체는 메모리를 차지하고 자료형 뿐만 아니라 식별 번호(identity)를 가진다.

List와 Tuple

  • List
    • 원소를 변경할 수 있는 뮤터블(mutable) list형 객체다.
    • 연산자 [ ] 안에 원소를 쉼표(,)로 구분하여 표기해서 생성할 수 있다.
    • 원소 없이 [ ]만 사용하면 빈 리스트를 생성한다.
  • Tuple
    • 원소를 변경할 수 없는 이뮤터블(immutable) 자료형이다.
    • 원소를 쉼표(,)로 구분하여 나열한 뒤 결합 연산자 ()로 둘러싸는 방식으로 생성한다.
    • 원소 없이 ( )만 사용하면 빈 튜플을 생성한다.
    • 원소가 단일일 경우, 반드시 뒤에 쉼표(,)로 구분해야 한다.
      • 그러지 않으면 단순한 변수로 인식하기 때문

List와 Tuple 특성

  • Unpack
    • 좌변에 여러 변수를 두고 우변에 Tuple 혹은 List를 둔다면 우변의 원소를 좌변의 원소에 한 번에 대입하는 것
  • Slice
    • 일정한 간격으로 꺼내 새로운 리스트 혹은 튜플을 만드는 것

등가성과 동일성

  • 등가성(Equality)
    • 좌변과 우변이 값이 같은지 비교한다.
    • 두 객체의 값이 같은지 비교하려면?
  • 동일성(Identity)
    • 값은 물론, 객체의 식별 번호도 비교한다.
    • 두 객체의 값과 식별 번호가 같은지 비교하려면?

Any와 Sequence

Any는 제약이 없는 임의의 자료형을 의미한다. Sequence는 시퀀스형(Sequence Type)을 의미한다. 해당 타입 안에는 List 타입, Byte Array 타입, Str 타입, Tuple 타입, Byte 타입이 있다.

함수 어노테이션

Python 문법은 제약성이 적어 유연성이 높지만 단점도 존재한다. 명시적으로 해결하기 어렵다는 점인데 등장한 기능이 어노테이션(Annotation, 주석달기)다.

 

알고리즘 - 백준


 

Split 함수

split(sep=None, maxsplit=-1)

"abcde".split()
"abcde".split('구분자')
"abcde".split('구분자', 분할횟수)

‘seq’를 기준으로 나누고 maxsplit만큼 자른다. maxsplit의 기본 값은 -1로 아무것도 일어나지 않는다.

map 함수

map(function, iterable, *iterables)

이외 활동

 

전 날, 0주차 프로젝트가 종료되고 팀원들에게 개발한 서비스에 대한 포스트모템을 제안했다. 포스트모템을 잘 알고 있는 것도 아니고 급하게 진행하느라 많은 기록을 남기지는 못했지만, 너무 좋은 팀원들과 함께 했기 때문에 끝까지 할 수 있는건 다 해보고 싶은 마음이 컸다.물론, 이번에 서로 생각하는 내용을 털어 놓음으로서 (혹시 모르게 쌓였을 수 있는) 앙금을 녹이고 차기 프로젝트 과정에서 더 좋은 방법을 알 수 있으리란 것도 한 몫 했다. 

 

포스트모템에 대한 글을 읽으면서 다음과 같은 규칙을 세우고 팀원들에게 제안했다.

 

1. 포스트모템은 서로의 발전을 위해서 진행하는 것이고 책임을 찾기 위함이 아니다.

2. 자신의 관점 보다는 팀 단위의 관점에서 보자.

 

여럿 알아보고 포스트모템이 무엇인가에 대해서 생각을 해봤지만, 1주차 커리큘럼이 있는 상황에서 짧은 시간 뒤에 진행이 되었기 때문에 포스트모템이 과연 올바르게 진행되었을까라는 고민이 있어서 조금 더 다양한 내용을 학습해야겠단 생각이 든다.

 

오늘의 TIL과 일기 끝!

 

 

'활동 > 크래프톤 정글' 카테고리의 다른 글

[TIL/크래프톤 정글] Day 9  (0) 2024.09.11
[TIL/크래프톤 정글] Day 8  (0) 2024.09.09
[TIL/크래프톤 정글] Day 6  (4) 2024.09.08
[크래프톤 정글] Day 1  (2) 2024.09.06
크래프톤 정글 7기 합격 후기  (4) 2024.08.29
'활동/크래프톤 정글' 카테고리의 다른 글
  • [TIL/크래프톤 정글] Day 8
  • [TIL/크래프톤 정글] Day 6
  • [크래프톤 정글] Day 1
  • 크래프톤 정글 7기 합격 후기
태역
태역
  • 태역
    RYULAB
    태역
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 언어
        • C
        • C++
        • C#
      • 엔진, 프레임워크
        • Unity
        • Unreal
        • Electron
      • 공부
        • 디자인 패턴
        • 수학
        • CS
        • Git
        • 알고리즘
        • 자료구조
      • 코테
        • 프로그래머스
        • 백준
      • 독서
        • Effective C#
        • CLR via C#
        • 뇌를 자극하는 윈도우즈 시스템 프로그래밍
        • 오브젝트
        • CSAPP
        • OSTEP
      • 프로젝트
        • Unity
      • 개발 일지
        • 퓨처리티
        • 골든타임
      • 활동
        • 게임잼 후기
        • 게임제작동아리 브릿지
        • 크래프톤 정글
        • 기타
      • 기타
  • 블로그 메뉴

    • 링크

    • 공지사항

      • 2024 04 17
    • 인기 글

    • 태그

      오블완
      티스토리챌린지
      인프런 #인프런강의후기 #게임개발 #게임개발강의 #인강후기 #강의후기 #게임개발자 #인프런강의
    • 최근 댓글

    • 최근 글

    • hELLO· Designed By정상우.v4.10.3
    태역
    [TIL/크래프톤 정글] Day 5
    상단으로

    티스토리툴바