λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°
⌨️ Language/swift

[ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1] μ†Œμˆ˜ λ§Œλ“€κΈ°

by hyebin (Helia) 2023. 2. 16.
λ°˜μ‘ν˜•
ν”„λ‘œκ·Έλž˜λ¨ΈμŠ€ LV.1 λͺ¨μŒ

μ†Œμˆ˜ λ§Œλ“€κΈ°

문제 μ„€λͺ…

μ£Όμ–΄μ§„ 숫자 쀑 3개의 수λ₯Ό λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό κ΅¬ν•˜λ €κ³  ν•©λ‹ˆλ‹€. μˆ«μžλ“€μ΄ λ“€μ–΄μžˆλŠ” λ°°μ—΄ numsκ°€ λ§€κ°œλ³€μˆ˜λ‘œ μ£Όμ–΄μ§ˆ λ•Œ, nums에 μžˆλŠ” μˆ«μžλ“€ 쀑 μ„œλ‘œ λ‹€λ₯Έ 3개λ₯Ό 골라 λ”ν–ˆμ„ λ•Œ μ†Œμˆ˜κ°€ λ˜λŠ” 경우의 개수λ₯Ό return ν•˜λ„λ‘ solution ν•¨μˆ˜λ₯Ό μ™„μ„±ν•΄μ£Όμ„Έμš”.

μ œν•œ 사항

  • nums에 λ“€μ–΄μžˆλŠ” 숫자의 κ°œμˆ˜λŠ” 3개 이상 50개 μ΄ν•˜μž…λ‹ˆλ‹€.
  • nums의 각 μ›μ†ŒλŠ” 1 이상 1,000 μ΄ν•˜μ˜ μžμ—°μˆ˜μ΄λ©°, μ€‘λ³΅λœ μˆ«μžκ°€ λ“€μ–΄μžˆμ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예

nums result
[1, 2, 3, 4] 1
[1, 2, 7, 6, 4] 4

μž…μΆœλ ₯ 예 μ„€λͺ…

μž…μΆœλ ₯ 예 #1

  • [1, 2, 4]λ₯Ό μ΄μš©ν•΄μ„œ 7을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

μž…μΆœλ ₯ 예 #2

  • [1, 2, 4]λ₯Ό μ΄μš©ν•΄μ„œ 7을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • [1, 4, 6]을 μ΄μš©ν•΄μ„œ 11을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • [2, 4, 7]을 μ΄μš©ν•΄μ„œ 13을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.
  • [4, 6, 7]을 μ΄μš©ν•΄μ„œ 17을 λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆλ‹€.

제좜

import Foundation

func solution(_ nums:[Int]) -> Int {
    var answer = 0
    var sum = 0
    var cnt = 0
    
    for i in 0..<nums.count{
        for j in i+1..<nums.count{
            for k in j+1..<nums.count{
                cnt = 0
                sum = nums[i]+nums[j]+nums[k]
                for c in 2..<sum{
                    if sum % c == 0{
                        break
                    }
                    cnt += 1
                }
                if cnt == (sum-2){
                    answer += 1
                }
            }
        }
    }
    
    return answer
}
3쀑 for문을 μ‚¬μš©ν•΄ λ°°μ—΄ μ•ˆμ— μžˆλŠ” μš”μ†Œλ“€ 쀑 3개의 μš”μ†Œλ₯Ό λ”ν•œλ‹€.
λ”ν•œ 값이 μ†Œμˆ˜μΈμ§€ νŒλ³„ν•œλ‹€. 
λ°˜μ‘ν˜•