TIL/알고리즘 공부
프로그래머스 Lv. 1 Swift 알고리즘 - 푸드 파이트 대회
여의도사노비
2022. 12. 29. 14:47
728x90
비교적 간단한 문제였다.
왼쪽과 오른쪽 값이 좌우대칭이 되게 만들면 된다.
이 문제를 풀면서 생각한 논리적 흐름
- 가져온 음식의 개수를 2로 나눈 값만큼 반복해서 사용하면 된다.
- 그 값들을 하나의 String으로 만들어서 이어준 다음
- String + "0" + String.reversed() 개념을 적용하면 끝.
* 코드
import Foundation
func solution(_ food:[Int]) -> String {
var foodSetting: String = ""
for i in 1...food.count-1 {
let count = food[i] / 2
if count != 0 {
for _ in 1...count {
foodSetting.append(String(i))
}
}
}
let reversedFoodSetting = foodSetting.reversed()
return foodSetting + "0" + reversedFoodSetting
}
정리(Today I Learned)
- 처음 풀 때 해맸던 것은 문제를 바로 String으로 접근하는 것이 아닌 Array를 써서 sorted, reversed 등을 적용시켰다는 것이다. 엄청나게 비효율적인 방법이었기에 다시 String으로 접근하니 금방 풀었다.