🔥개인 취미 목적으로 프로그래머스 문제를 정리한 게시글입니다.
https://school.programmers.co.kr/learn/courses/30/lessons/12919
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
✏️ 문제설명
String 배열 seoul의 element 중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요. seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
💡 제한사항
seoul은 길이 1 이상 1,000 이하인 배열입니다.
seoul의 원소는 길이 1 이상 20 이하인 문자열입니다.
"Kim"은 반드시 seoul 안에 포함되어 있습니다.
📚 입출력 예
seoul | return |
["Jane", "Kim"] | "김서방은 1에 있다" |
💻 소스 코드
class Solution {
public String solution(String[] seoul) {
int i = 0;
for (String s : seoul) {
if (s.equals("Kim")) {
break;
}
i++;
}
return "김서방은 " + i + "에 있다";
}
}
위 코드는 문자열 배열 seoul에서 "Kim"이라는 문자열을 찾아 해당 문자열이 배열에서 몇 번째에 위치해 있는지를 반환하는 메서드입니다.
코드의 작동 방식은 다음과 같습니다.
- 배열을 순회하며 "Kim"이라는 문자열을 찾을 i라는 정수 변수를 0으로 초기화합니다.
- 향상된 for문을 사용해 배열 seoul을 순회하며 각 요소를 s에 할당합니다.
- 현재 요소 s가 "Kim"을 찾을 때까지 i를 증가시키며 배열을 순회하고, 같다면 반복문을 종료합니다.
- 반복문을 종료한 후, 문자열을 반환합니다.
시간 복잡도
위 코드의 시간 복잡도는 입력 배열 seoul의 길이에 선형적으로 비례합니다. 배열을 한 번 순회하면서 "Kim" 문자열을 찾는 작업을 수행하므로 시간 복잡도는 O(n)입니다. 여기서 n은 배열 seoul의 길이를 나타냅니다.
공간 복잡도
위 코드의 공간 복잡도는 입력 배열 seoul과 변수 i를 저장하기 위한 공간을 사용하며, 입력 크기에 비례하지 않고 상수입니다. 따라서 공간 복잡도는 O(1)입니다.
'🕊️ 프로그래머스 > Lv1' 카테고리의 다른 글
[프로그래머스] Lv.1 핸드폰 번호 가리기 - Java (0) | 2023.12.07 |
---|---|
[프로그래머스] Lv.1 없는 숫자 더하기 - Java (0) | 2023.12.06 |
[프로그래머스] Lv.1 음양 더하기 - Java (0) | 2023.12.04 |
[프로그래머스] Lv.1 콜라츠 추측 - Java (0) | 2023.12.01 |
[프로그래머스] Lv.1 두 정수 사이의 합 - Java (1) | 2023.11.29 |