안녕하세요. 이번에는 프로그래머스 서울에서 김서방 찾기를 풀어보려고 합니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12919
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
Problem
String형 배열 seoul의 element 중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
[제한 사항]
○ seoul은 길이 1 이상, 1000 이하인 배열입니다.
○ seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
○ "Kim"은 반드시 seoul 안에 포함되어 있습니다.
![](https://blog.kakaocdn.net/dn/CSbvc/btsArCwpBYK/uzQikq5o0ZjEmwkLzGDUB0/img.png)
Solution
class Solution {
fun solution(seoul: Array<String>): String {
var answer = ""
var index = seoul.indexOf("Kim")
answer = "김서방은 ${index}에 있다"
return answer
}
}
이번 문제는 indexOf() 기능을 사용해서 seoul에 "Kim"의 위치를 알아내는 방식으로 접근하였다.
1. 다른 사람 코드
class Solution {
fun solution(seoul: Array<String>): String {
seoul.forEachIndexed { index, s ->
if (s == "Kim") {
return "김서방은 ${index}에 있다"
}
}
return "-1"
}
}
다른 사람은 forEachIndexed를 사용해서 풀이한 방법도 있다. 두 코드 모두 시간복잡도는 O(n)을 갖는다. 그러니 둘 중에 편한 방법으로 풀면 될 것 같다.
Performance
1. 내가 작성한 코드 | 2. 다른 사람 코드 |
![]() |
![]() |
반응형
'프로그래머스 Algorithm' 카테고리의 다른 글
[프로그래머스] 나누어 떨어지는 숫자 배열 Kotlin (2) | 2023.11.19 |
---|---|
[프로그래머스] 음양 더하기 Kotlin (0) | 2023.11.18 |
[프로그래머스] 콜라츠 추측 Kotlin (0) | 2023.11.16 |
[프로그래머스] 두 정수 사이의 합 Kotlin (0) | 2023.11.15 |
[프로그래머스] 하샤드 수 Kotlin (0) | 2023.11.14 |