728x90
반응형
https://programmers.co.kr/learn/courses/30/lessons/12981?language=swift#
끝말잇기의 규칙을 상기하며 풀이해보면 된다.
1. 앞단어의 뒷글자로 시작되는 단어를 말할 것
2. 중복되는 단어를 말하지 말 것
두 가지 조건을 지키지 못한 경우 player의 번호와 몇 round인지 구해서 반환해주면 된다!
player의 번호를 구할 때는 %를 사용해서 나머지로 구할 수 있고, 몇 번째 판인지는 몫을 통해 알아낼 수 있다.
import Foundation
func solution(_ n:Int, _ words:[String]) -> [Int] {
// 첫 단어
var unique = [words[0]]
// 결과
var ans = [Int]()
// 첫 번째부터 돌기
for i in 1..<words.count {
// 중복된 단어가 아니고, 앞단어의 뒷글자 == 현재 단어 앞글자일 경우
if !unique.contains(words[i]) && words[i-1].last! == words[i].first! {
// 추가
unique.append(words[i])
} else {
// 아닐 경우 번호, 차례 순서대로 저장
ans.append(i%n + 1)
ans.append(i/n + 1)
break
}
}
// empty일 경우 [0,0]
return ans == [] ? [0,0] : ans
}
몫과 나머지를 적절하게 사용하여 풀이해주면 된다.
Int형일 때는 소수점이 안나오기에 이 점을 고려하여 +1 하여 여러 케이스들을 고려해준다!
끄읕
728x90
반응형