TIL|アルゴリズム基礎#3&Git


再帰関数-2


小数点以下の桁数と再帰関数で値を求める

# n의 각 자릿수의 합을 리턴
def sum_digits(n):
    if n < 10:
        return n
    return n % 10 + sum_digits(n // 10)

# 테스트
print(sum_digits(22541))
print(sum_digits(92130))
print(sum_digits(12634))
print(sum_digits(704))
print(sum_digits(3755))
14
15
16
11
20

リストを反転

# 파라미터 some_list를 거꾸로 뒤집는 함수
def flip(some_list):
    if len(some_list) == 1:
        return some_list 
    return some_list[-1:] + flip(some_list[:-1])

# 테스트
some_list = [1, 2, 3, 4, 5, 6, 7, 8, 9]
some_list = flip(some_list)
print(some_list)
[9, 8, 7, 6, 5, 4, 3, 2, 1]

Brute Force


できる限り

長所


-直感的に明確
-答えを見つけられる

短所


-入力量が多いと効率が低下します

例1


左の束から1枚の札を引いて、右の束から1枚の札を引いて、2つの数の積の中から最大の値を求めます
-可能なすべての組み合わせを確認するために、重複する文を検索→リストとして保存→前後で最大値を比較するかどうかを検討し、リストを並べ替えて最大値を表示します.
def max_product(left_cards, right_cards):
    # 모든 곱셈의 값을 담기위한 list 생성
    multi_list = []
    # 가능한 모든 조합을 보기 위한 중첩 반복문
    for i in left_cards:
        for j in right_cards:
            multi_list.append(i * j)
    multi_list.sort()
    return multi_list[-1]
    
# 테스트
print(max_product([1, 6, 5], [4, 2, 3]))
print(max_product([1, -9, 3, 4], [2, 8, 3, 1]))
print(max_product([-1, -7, 3], [-4, 3, 6]))
24
32
28

Git


機能


-バージョン管理
-コラボレーション可能
-ファイルを外部コンピュータに転送可能(バックアップ可能)

Github


-プロジェクトをGitとして管理できるサイト

基本概念

Commit 커밋-プロジェクトディレクトリの特定の外観を1つのバージョンに保持する動作&成果物Repository 레포지토리-コミットされた保管場所

リポジトリの作成

$ mkdir MathTool     # mkdir 폴더명. 디렉토리 생성하기 
$ ls                 # 리스트 확인하기
$ cd MathTool/       # 폴더 안으로 들어가기 
$ git init           # 비어있는 레포지토리 생산하기 

Commitの注意事項


1.初回発行前設定사용자의 이름과 이메일 주소2.提出するファイルをgit addと指定
3.伝言提出(옵션 -m)<例>
# 파일 들어가기 
$ cd ..

# 파일 생성확인(Lisence, calculator.py 파일 생성 후) 
$ ls -al

#사용자 이름 및 이메일 주소 설정
$ git config user.name "ash"
$ git config user.email "**@gmail.com"

# 커밋할 파일을 git add로 지정해줘야 함
$ git add calculator.py
$ git add License

# 커밋 메세지 포함하여 커밋 실행 
$ git commit -m "Creat calculator.py and License"

羽毛整理用語

  • git init : 現在のディレクトリをGitが管理するプロジェクトディレクトリ(=working directory)に設定し、ライブラリ(.gitディレクトリ)
  • を作成します.
  • git config user.name 'codeit' : 現在のユーザのアイデンティティを「codeit」(コミット時に必要な情報)
  • に設定.
  • git config user.email '[email protected]' : 「現在のユーザーのEメールアドレスを[email protected]「(コミットに必要な情報)
  • に設定
  • git add[ファイル名] :
  • 変更された特定のファイルをstaging領域にアップロード
  • git add[ディレクトリ名] : ディレクトリ内の変更されたすべてのファイルをstaging area
  • にアップロードします.
  • git add . :
  • 作業ディレクトリで変更されたすべてのファイルをstaging areaにアップロード
  • git reset [ファイル名] : staging areaにアップロードされたファイル
  • を再ダウンロード
  • git status : Gitが現在知っている項目出力(問題が発生した場合、現在の状態を決定するために使用することが望ましい)
  • Git commit-m「コミットメッセージ」 : 現在のstaging areaのコンテンツをコミットする
  • Git help[顧客名] : Git CurMandの公式メニュー出力