Bibi's DevLog πŸ€“πŸŽ

[λ°±μ€€ 24262 ~ 24267] μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ (1~6) (Swift) λ³Έλ¬Έ

ν”„λ‘œκ·Έλž˜λ°/μ•Œκ³ λ¦¬μ¦˜ 풀이 Swift

[λ°±μ€€ 24262 ~ 24267] μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ (1~6) (Swift)

λΉ„λΉ„ bibi 2022. 9. 20. 16:13

1

24262번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ 1

μ½”λ“œ 1의 μˆ˜ν–‰ νšŸμˆ˜μ™€ μ•Œκ³ λ¦¬μ¦˜ μˆ˜ν–‰ μ‹œκ°„μ„ 좜λ ₯ν•˜λ©΄ λœλ‹€.

  • μ½”λ“œ 1의 μˆ˜ν–‰ νšŸμˆ˜λŠ” μ–Έμ œλ‚˜ 1번
  • μ½”λ“œ 1은 return A[i] 이며, nκ³Ό 관계없이 μƒμˆ˜ μ‹œκ°„μ΄ μ†Œμš”λ˜λ―€λ‘œ 0 좜λ ₯

풀이

print(1, 0)

2

24263번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ 2

  • μ½”λ“œ1은 sum = sum + A[i] 이며, 1λΆ€ν„° nκΉŒμ§€ λ°˜λ³΅ν•˜λŠ” 반볡문 내에 μžˆμœΌλ―€λ‘œ μ–Έμ œλ‚˜ n번 μ‹€ν–‰λœλ‹€.
  • μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ€ n에 λΉ„λ‘€ν•˜λ―€λ‘œ 1을 좜λ ₯.

풀이

let input = Int(readLine()!)!
print(input, 1)

3

24264번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ 3

  • μ½”λ“œ 1은 sum = sum + A[i] * A[j] 이며, 1λΆ€ν„° nκΉŒμ§€ λ°˜λ³΅λ˜λŠ” 이쀑 for문에 μžˆμœΌλ―€λ‘œ μ–Έμ œλ‚˜ n의 2제곱만큼 μ‹€ν–‰λœλ‹€.
  • μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ€ n의 2μ œκ³±μ— λΉ„λ‘€ν•˜λ―€λ‘œ 2 좜λ ₯

풀이

let count = Int(readLine()!)!
print(count * count, 2)

4

24265번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ 4

  • μ½”λ“œ1은 이쀑 forλ¬Έ 내에 μžˆλŠ” sum = sum + A[i] * A[j] μ΄μ§€λ§Œ, 첫번째 for문의 iλŠ” 1λΆ€ν„° n-1κΉŒμ§€, λ‘λ²ˆμ§Έ for문의 jλŠ” i + 1 λΆ€ν„° nκΉŒμ§€ λ°˜λ³΅λœλ‹€.
    • 반볡 νšŸμˆ˜κ°€ 맀번 λ‹€λ₯΄λ―€λ‘œ 계산이 ν•„μš”ν•¨
    • μ²˜μŒμ—λŠ” λ¬Έμ œμ— 주어진 λ°˜λ³΅λ¬ΈλŒ€λ‘œ 반볡횟수λ₯Ό κ΅¬ν–ˆλŠ”λ°, n의 μ΅œλŒ“κ°’λ§Œ 생각해봐도 50λ§Œμ΄λ‹ˆ μ‹œκ°„μ œν•œμΈ 1μ΄ˆμ— κ±Έλ¦°λ‹€.
    • κ²°κ΅­ κ·œμΉ™μ„ μ°Ύμ•„ 곡식을 ꡬ해야 함
    • 주어진 반볡문의 끝 λ²”μœ„μΈ n-1κ³Ό n을 κ³±ν•œ κ°’κ³Ό λ‹¨μˆœλ°˜λ³΅ν–ˆμ„λ•Œμ˜ 결과값을 비ꡐ해 λ³Έλ‹€.
    • 1의 κ²°κ³Όκ°’ : 0, n(n-1) = 0
    • 2의 κ²°κ³Όκ°’ : 1, n(n-1) = 2 β†’ /2ν•΄μ•Ό 1이 될 κ²ƒμž„
    • 3의 κ²°κ³Όκ°’ : 3, n(n-1) = 6 β†’ /2ν•΄μ•Ό 1이 될 κ²ƒμž„
    • 4의 κ²°κ³Όκ°’ : 6, n(n-1) = 12 β†’ /2ν•΄μ•Ό 1이 될 κ²ƒμž„
    • 와 같은 μ‹μœΌλ‘œ νŒ¨ν„΄μ„ 찾을 수 μžˆλ‹€.. (λ¬Όλ‘  λ‚˜λŠ” κ΅¬κΈ€λ§μ˜ 도움을 λ°›μ•˜λ‹€..)
    • λ”°λΌμ„œ 곡식은 n(n-1)/2κ°€ λœλ‹€.
    • μ•Œκ³  λ³΄λ‹ˆ μ‚Όκ°μˆ˜ λΌλŠ” μˆ˜μ—΄ νŒ¨ν„΄μ΄μ—ˆλ‹€.. 배경지식이 μžˆμ—ˆλ‹€λ©΄ 더 λΉ λ₯΄κ²Œ μ°Ύμ•˜μ„ λ“―!
  • μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ€ 이쀑forλ¬Έμ΄λ―€λ‘œ n2 β†’ 2λ₯Ό 좜λ ₯ν•œλ‹€.

풀이

let input = Int(readLine()!)!
print(input * (input - 1) / 2, 2)

5

24266번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ 5

  • μ½”λ“œ1은 sum = sum + A[i] * A[j] * A[k] 이며, 1λΆ€ν„° nκΉŒμ§€ λ°˜λ³΅ν•˜λŠ” 3쀑 forλ¬Έ 내뢀에 μžˆλ‹€. λ”°λΌμ„œ μˆ˜ν–‰ νšŸμˆ˜λŠ” n의 3제곱이 λœλ‹€.
  • μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ€ n의 μ„Έμ œκ³±μ— λΉ„λ‘€ν•˜λ―€λ‘œ 3을 좜λ ₯ν•œλ‹€.

풀이

let input = Int(readLine()!)!
print(input * input * input, 3)

6

24267번 - μ•Œκ³ λ¦¬μ¦˜ μˆ˜μ—… - μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„ 6

  • μ½”λ“œ1은 sum = sum + A[i] * A[j] * A[k] 이며, 3쀑 forλ¬Έ 내에 μžˆλ‹€.
  • 반볡 νšŸμˆ˜κ°€ i와 j에 따라 λ‹€λ₯΄λ―€λ‘œ νŒ¨ν„΄μ„ μ°Ύμ•„ 곡식을 λ§Œλ“€μ–΄μ•Ό ν•œλ‹€.
    • λ°˜λ³΅λ¬Έμ— μ‚¬μš©λœ λ²”μœ„μ—μ„œ 힌트λ₯Ό μ–»κ³ , μ½”λ“œλ₯Ό λ‹¨μˆœλ°˜λ³΅ν•œ 결과와 비ꡐ해 곡식을 μœ μΆ”ν•œλ‹€.
    • λ°˜λ³΅λ¬Έμ— μ‚¬μš©λœ λ²”μœ„ : n(n-1)(n-2)
    • n이 1,2일 λ•Œ : (X) β†’ 근데 μ˜ˆμ™Έμ²˜λ¦¬λŠ” ν•„μš”μ—†λŠ”λ“―.. μ–΄μ°¨ν”Ό κ³΅μ‹μ˜ κ²°κ³Όκ°€ 0으둜 κ°™λ‹€
    • n이 3일 λ•Œ : 1
      • n(n-1)(n-2) = 6
      • /6을 ν•œ 결과와 같아진닀.
    • n이 4일 λ•Œ : 4
      • n(n-1)(n-2) = 24
      • /6을 ν•œ 결과와 같아진닀.
    • n이 5일 λ•Œ : 10
      • n(n-1)(n-2) = 60
      • /6을 ν•œ 결과와 같아진닀.
    • .. 같은 μ‹μœΌλ‘œ 곡식을 n(n-1)(n-2) / 6 으둜 μœ μΆ”ν•  수 μžˆλ‹€.
    • (μ—­μ‹œ 이것도 κ΅¬κΈ€λ§μ˜ 도움을 λ°›μ•˜λ‹€..)
  • μ•Œκ³ λ¦¬μ¦˜μ˜ μˆ˜ν–‰ μ‹œκ°„μ€ 3쀑 forλ¬Έμ΄λ―€λ‘œ n의 3μ œκ³±μ— 비둀함. λ”°λΌμ„œ 3을 좜λ ₯ν•œλ‹€.