본문 바로가기
Problem Solving

[Swift] 프로그래머스 삼총사(lv. 1)

by DuncanKim 2023. 1. 18.
728x90

[Swift] 프로그래머스 삼총사(lv. 1)

 

1. 문제

https://school.programmers.co.kr/learn/courses/30/lessons/131705

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

2. 접근

삼총사... 세 개의 원소를 가지고 해야 한다.

주어지는 number의 배열의 길이가 최대 13이므로 4~5중 반복문도 상관없으니 삼중반복을 통해 3개의 원소를 고르는 경우의 수를 모두 찾아 더해주면 되는 '간''단'한 문제이다.

 

원소의 순서는 상관이 없으니 '조합'이다. 그렇기에 앞에서부터 차례로 반복문을 돌려주면 되고, 이중 반복문에서는 시작점을 가장 바깥 반복문의 index + 1 부터 number.count - 2 까지 순환을 하고, 삼중 반복문에서는 중간 반복문의 index + 1 부터 number.count - 3 까지 순환을 하면 된다.

 

 

3. 코드

 

import Foundation

func solution(_ number:[Int]) -> Int {
    var answer = 0
    for i in 0 ... number.count - 3 {
        for j in i + 1 ... number.count - 2 {
            for k in j + 1 ... number.count - 1 {
                if number[i] + number[j] + number[k] == 0 {
                    answer += 1
                }
            }
        }
    }
    return answer
}
728x90

댓글