Swift랑 친해지기/programmers 풀기

[프로그래머스] 푸드 파이트 대회 (Swift)

데브킹덕 2022. 12. 14. 23:19

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

 

프로그래머스

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

programmers.co.kr

변수 설정

  • front : 앞에부터 0전까지 음식을 먹는 순서를 담은 문자열
  • word: 각 음식의 개수를 2로 나눈 몫
  • result: 대회를 위한 음식의 배치를 나타내는 문자열

 

내 풀이

1. food 배열에 1번째 인덱스부터 접근함 (0인덱스는 물이고 무조건 1임)

2. food 의 요소가 즉 각각의 음식을 2로 나눈 몫은 앞과 뒤에 사람이 먹을 음식의 양임(1이면 나눠 먹을 수 없음)

한 음식을 2로 나눈 몫만큼 반복하여 word에 추가하고 그것을 front에 다시 추가해줌

3. 앞에 사람이 먹는 음식 순서(front)를 구했으니 거기에 String(0)(물)을 더해주고 뒤에 사람이 먹는 음식 순서 front.reverse()를 더해서  반환 

 

import Foundation

func solution(_ food:[Int]) -> String {
    var front = ""
    var word = ""
    
    for i in 1..<food.count{
        word = ""
        if food[i] > 1{
            for _ in 1...food[i] / 2{
                word += String(i)
            }
            front += word
        }
    }
    
    let result = front + "0" + String(front.reversed())
    
    return result
}