1. 문제 설명 (📎Link)
String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
2. 제한사항
seoul은 길이 1 이상, 1000 이하인 배열입니다.
seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.
📝 문제
func solution(_ seoul:[String]) -> String {
return 0
}
💻 내가 푼 방법 및 풀이
전체 코드
func solution(_ seoul:[String]) -> String {
for x in 0...seoul.count - 1 {
guard seoul[x] != "Kim" else { return "김서방은 \(x)에 있다" }
}
return " "
}
코드별 설명(왜 그렇게 풀었는가?)
for x in 0...seoul.count - 1
김서방의 위치 x가 seoul의 요소를 돌아야 하므로 반복문을 작성한다
대신, 배열에서 요소는 1부터가 아닌 0부터 시작이므로 .count-1 을 추가해준다
만약 제시된 seoul이 ["solbi", "rin", "seongjin", "kim"] 의 배열일 경우 kim은 4번째가 아닌, 3번째 위치이기 때문이다
guard seoul[x] != "Kim" else { return "김서방은 \(x)에 있다" }
1. seoul의 요소가 김서방이 아니다 → 거짓 → guard문 바깥으로 빠짐
2. seoul의 요소가 김서방이 맞다 → 참 → guard문 내부 블록 실행
문제의 조건 중 seoul 배열 내부에 김서방은 100% 있으므로 내부 블록이 실행된다
return " "
거짓일 경우 필요한 return 값도 넣어준다
🔎 의문점과 공부한 것
1. 그동안 if문만 사용했었는데, guard문을 사용하면서 더 직관적인 코드 사용이 가능해졌다
아직은 많이 헷갈리는데 필요성에 따라 적절하게 사용할 수 있도록 공부해야겠다!!!!!!!
2. 알고리즘 점점 어려워지는데 하나 풀 때마다 레벨업 하는 기분 ㅎㅎ
'🍎 Swift > Programmers' 카테고리의 다른 글
[👾 Programmers] 26. 음양 더하기 (0) | 2024.07.10 |
---|---|
[👾 Programmers] 25. 나누어 떨어지는 숫자 배열 (0) | 2024.07.09 |
[👾 Programmers] 23. 콜라츠 추측 (0) | 2024.06.28 |
[👾 Programmers] 22. 두 정수 사이의 합 (0) | 2024.06.28 |
[👾 Programmers] 21. 하샤드 수 (0) | 2024.06.26 |