[πŸ“ iOS TIL] #6 ... 🍎 Swift οΌ† Algorithm πŸ–₯️

TaeUkΒ·2024λ…„ 2μ›” 28일
0

🍎 iOS TIL

λͺ©λ‘ 보기
5/18
post-thumbnail

[level 1] λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 수 μ°ΎκΈ° - 87389

  • 문제 μ„€λͺ…
    μžμ—°μˆ˜ n이 λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§‘λ‹ˆλ‹€. n을 x둜 λ‚˜λˆˆ λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λ„λ‘ ν•˜λŠ” κ°€μž₯ μž‘μ€ μžμ—°μˆ˜ xλ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”. 닡이 항상 μ‘΄μž¬ν•¨μ€ 증λͺ…될 수 μžˆμŠ΅λ‹ˆλ‹€.
문제 풀이

import Foundation

func solution(_ n:Int) -> Int {
    var arr: [Int] = []
    
    for i in 1...n-1 {
        if n % i == 1 {
            arr.append(i)
        }
    }
    
    return arr[0]
}

μœ„ 문제 ν’€μ΄λŠ” μš°μ„  주어진 문제 쑰건에 맞게 λ™μž‘ν•˜λ„λ‘ κ΅¬μ„±ν•œ 것이닀!

κ°€μž₯ κ°„νŽΈν•˜κ²Œ 배열을 λ§Œλ“  ν›„, λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 값을 λ°°μ—΄ arr에 μ €μž₯λ˜λ„λ‘ ν•˜μ˜€λ‹€. 이후, λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 값이 λͺ¨μ—¬μžˆλŠ” λ°°μ—΄μ—μ„œ κ°€μž₯ μž‘μ€ μˆ˜κ°€ λ°°μ—΄ 맨 μ•žμ— μžˆκΈ°μ—, arr의 0번째 μΈλ±μŠ€μ—μ„œ 값을 가져와 κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜ν•˜μ˜€λ‹€.

μœ„ 문제 풀이λ₯Ό λ‹€λ₯Έ λ°©μ‹μœΌλ‘œ ν’€ 방법이 μƒκ°λ‚˜ 쑰금 λ°”κΏ”λ³΄μ•˜λ‹€!

문제 풀이

import Foundation

func solution(_ n:Int) -> Int {
    var arr: [Int] = []
    var ans: [Int] = []
    
    for i in 1...n-1 {
        arr.append(n % i == 1 ? i : 0)
    }
    
    ans = arr.filter{ $0 != 0 }
    
    return ans[0]
}

맨 처음 ν‘Ό 문제 풀이와 μœ μ‚¬ν•˜κ²Œ λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” 수λ₯Ό κ΅¬λΆ„ν•˜κΈ° μœ„ν•΄

for i in 1...n-1 {
        arr.append(n % i == 1 ? i : 0)
    }

μ½”λ“œλ₯Ό λ§Œλ“€μ–΄ arr에 λ‚˜λ¨Έμ§€κ°€ 1이 λ˜λŠ” μˆ˜μ™€ 아닐 λ•Œμ˜ 값인 0이 μ €μž₯λœλ‹€.

이후, filter ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ λ‚˜λ¨Έμ§€κ°€ 1인 수만 남겨 배열을 μž¬μ •λ¦¬ν•˜μ˜€λ‹€.

λ§ˆμ§€λ§‰μœΌλ‘œ μœ„ 문제 풀이와 λ§ˆμ°¬κ°€μ§€λ‘œ arr의 0번째 값을 κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜ν•˜μ˜€λ‹€.


[level 1] x만큼 간격이 μžˆλŠ” n개의 숫자 - 12954

  • 문제 μ„€λͺ…
    ν•¨μˆ˜ solution은 μ •μˆ˜ x와 μžμ—°μˆ˜ n을 μž…λ ₯ λ°›μ•„, xλΆ€ν„° μ‹œμž‘ν•΄ xμ”© μ¦κ°€ν•˜λŠ” 숫자λ₯Ό n개 μ§€λ‹ˆλŠ” 리슀트λ₯Ό 리턴해야 ν•©λ‹ˆλ‹€. λ‹€μŒ μ œν•œ 쑰건을 보고, 쑰건을 λ§Œμ‘±ν•˜λŠ” ν•¨μˆ˜, solution을 μ™„μ„±ν•΄μ£Όμ„Έμš”.
문제 풀이

func solution(_ x:Int, _ n:Int) -> [Int64] {
    var arr: [Int] = []
    
    for i in 1...n {
        arr.append(x * i)
    }    
    
    return arr.map{ Int64($0) }
}

이번 문제λ₯Ό ν’€λ©΄μ„œ 처음으둜 "Int64" ν˜•νƒœλ₯Ό λ³Έ 것 κ°™λ‹€. 이전뢀터 Swift둜 문제 풀이λ₯Ό ν•˜λ©° λŠλ‚€μ  쀑 ν•˜λ‚˜λ‘œ, μžλ£Œν˜•μ— λŒ€ν•΄ 맀우 μ˜ˆλ―Όν•œ 것 κ°™λ‹€.

맨 처음 문제λ₯Ό ν’€ λ•Œ, λ‹Ήμ—°νžˆ Intκ°€ Int64의 크기λ₯Ό 감당할 수 μžˆκΈ°μ— λ³„λ„μ˜ ν˜•λ³€ν™˜μ΄ ν•„μš”μ—†μ„ 쀄 μ•Œμ•˜λ‹€...

κ·Έλž˜μ„œ "arr"μ΄λΌλŠ” Int ν˜•μ„ μž…λ ₯λ°›λŠ” 빈 배열을 λ§Œλ“€μ–΄, λ¬Έμ œμ— λŒ€ν•œ 결과값을 배열에 담을 수 μžˆλ„λ‘ ν•˜μ˜€λ‹€.

이후, μ΅œμ’… 결과값을 mapν•¨μˆ˜λ₯Ό μ‚¬μš©ν•˜μ—¬ "Int64" ν˜•νƒœλ‘œ λ³€ν™˜ν•œ λ’€, ν•¨μˆ˜μ˜ κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜ν•˜μ˜€λ‹€.


Git

3번 이상

Gitμ΄λž€?

: 버전 관리 도ꡬ(ν˜•μƒ 관리 도ꡬ)

μ½”λ“œ 변경점 기둝

1. λ¦¬λˆ…μŠ€ λͺ…λ Ήμ–΄

pwd(Print Working Directory)

ν˜„μž¬ μž‘μ—…ν•˜κ³  μžˆλŠ” 디렉토리λ₯Ό 좜λ ₯μ‹œμΌœμ€Œ

ls(List)

ν˜„μž¬ μœ„μΉ˜ν•˜κ³  μžˆλŠ” 디렉토리에 μžˆλŠ” 폴더와 νŒŒμΌμ„ 좜λ ₯함

ls -a(All)

μˆ¨κ²¨μ§„ 폴더와 νŒŒμΌμ„ ν¬ν•¨ν•˜μ—¬ λͺ¨λ‘ 좜λ ₯함

cd(Change Directory)

μ›ν•˜λŠ” ν΄λ”λ‘œ 이동

Ex) cd Desktop

  • ..
    μƒμœ„ ν΄λ”λ‘œ 이동
    Ex) cd ..

  • DirectoryName/DirectoryName
    "폴더λͺ…/폴더λͺ…"으둜 더 깊이 이동할 수 있음

mkdir(Make Directory)

ν˜„μž¬ μœ„μΉ˜μ—μ„œ 폴더λ₯Ό λ§Œλ“€ 수 있음

Ex) mkdir DirectoryName

touch

ν˜„μž¬ μœ„μΉ˜μ—μ„œ νŒŒμΌμ„ λ§Œλ“€ 수 있음

Ex) touch a.txt

2. Github

Githubμ΄λž€?

: μ½”λ“œλ₯Ό λ°±μ—…, κ³΅μœ μ™€ ν˜‘μ—…μ΄ κ°€λŠ₯ν•œ 온라인 μ½”λ“œ μ €μž₯μ†Œ

3. Github

git init(initialize: μ΄ˆκΈ°ν™”ν•˜λ‹€)

μ½”λ“œ 관리λ₯Ό μ‹œμž‘ν•˜λŠ” λͺ…λ Ήμ–΄

  • ν”„λ‘œμ νŠΈ μ‹œμž‘ μ „, ν•œ 번만 μž…λ ₯ν•˜λ©΄ 됨
  • μ •ν™•ν•™ ν”„λ‘œμ νŠΈ κ²½λ‘œμ—μ„œ μž…λ ₯ν•΄μ•Ό 됨

폴더 -> μ„œλΉ„μŠ€ -> 폴더에 μƒˆλ‘œμš΄ 터미널 μ—΄κΈ°

git add & commit

μ½”λ“œλ₯Ό μ €μž₯ν•˜λŠ” λͺ…λ Ήμ–΄

  1. git add FileName

    μ €μž₯ μ „, μ €μž₯ν• λ €λŠ” 파일 지정

    • git add .
      λͺ¨λ“  ν”„λ‘œμ νŠΈ 지정
  2. git commit -m "Massage"

    μ‹€μ œλ‘œ μ €μž₯ν•˜λŠ” λͺ…λ Ήμ–΄

git status

μ €μž₯ μ—¬λΆ€ ν™•μΈν•˜λŠ” λͺ…λ Ήμ–΄

git log

μ €μž₯ 내역을 ν™•μΈν•˜λŠ” λͺ…λ Ήμ–΄

  • commitμ—μ„œ μž‘μ„±ν•œ Massage logλ₯Ό λͺ¨λ‘ 확인 κ°€λŠ₯
  • ν‚€λ³΄λ“œ q = λ‚˜μ˜€κΈ°

git diff & reset

  1. git diff

    μ½”λ“œ λ³€κ²½ 확인

  2. git reset

    과거둜 λŒμ•„κ°€λŠ” λͺ…λ Ήμ–΄

0개의 λŒ“κΈ€