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으로 접근하니 금방 풀었다.
'TIL > 알고리즘 공부' 카테고리의 다른 글
프로그래머스 Lv. 1 Swift 알고리즘 - 옹알이(2) (0) | 2022.12.30 |
---|---|
프로그래머스 Lv. 1 Swift 알고리즘 - 햄버거 만들기 (0) | 2022.12.29 |
프로그래머스 Lv. 1 Swift 알고리즘 - 과일 장수 (0) | 2022.12.28 |
프로그래머스 Lv. 1 Swift 알고리즘 - 기사단원의 무기 (0) | 2022.12.28 |
프로그래머스 Lv. 1 Swift 알고리즘 - 명예의 전당(1) (0) | 2022.12.27 |