문제해결을 위한 공부내용
-String(repeating: , count: )
-for 반복문
-인덱스 위치
func solution(_ food:[Int]) -> String {
var result: [String] = ["0"] // 중심점인 0을 세운다
for i in 1...food.count-1 {
if food[i] % 2 == 0 {
result.insert(String(repeating: String(i), count: food[i] / 2), at: result.index(i, offsetBy: -1))
result.insert(String(repeating: String(i), count: food[i] / 2), at: result.index(i, offsetBy: +1))
%2로 나눠진다면 그 수를 반복해서 넣는다
여기서 핵심은 위치설정이다⭐️
at: result.index(i, offsetBy: -1)
at: result.index(i, offsetBy: +1)
0을 기준으로 앞뒤로 넣어주는 방법이다
사실 아직 index를 정확히 이해하지 못했지만 감으로 맞은 기분..
} else { 위의 조건문이 false이면 -1해주고 위와 동일하다
result.insert(String(repeating: String(i), count: (food[i]-1) / 2), at: result.index(i, offsetBy: -1))
result.insert(String(repeating: String(i), count: (food[i]-1) / 2), at: result.index(i, offsetBy: +1))
}
}
return result.joined()
}
결국 핵심은 어떻게 0을 기준으로 앞뒤로 반복해서 넣어주는게 핵심이다.
다른 사람들의 코드를 보니 간단하게 reverse를 활용하여 바꿔주었다
왜 나는 쉬운방법을 돌아가는지 ....ㅠ
화이팅합시다요~!
func solution1(_ food:[Int]) -> String {
var result = ""
for i in food.indices {
result += String(repeating: String(i), count: food[i] / 2)
// 0 또는 1일 경우 count가 안되기 때문에 건너뜀 대박....⭐️
}
return result + "0" + result.reversed()
}