배열에서 특정 값의 위치 찾기
배열에서 특정 값 찾는 방법
배열에서 특정 값을 찾기 위해서는 배열의 각 요소를 순회하면서 해당 값이 존재하는지 확인해야 합니다. 이 것을 탐색이라고 하며, 가장 기본적인 방법은 선형 탐색(linear search)입니다.
선형 탐색 (Linear Search)
선형 탐색은 배열의 첫 번째 요소부터 마지막 요소까지 차례대로 비교하는 방법입니다.
1. 배열의 첫 번째 요소부터 시작
2. 각 요소를 목표 값과 비교
3. 목표 값을 찾으면 해당 요소의 인덱스를 반환
4. 배열의 끝까지 탐색해도 목표 값을 찾지 못하면, 목표 값이 배열에 없음을 의미함
자바 코드 예제
위의 개념을 이해하기 위해, "Kim"이라는 값을 seoul 배열에서 찾는 간단한 코드를 리뷰하겠습니다.
class Solution {
public String solution(String[] seoul) {
String answer = "";
int x = -1;
for (int i = 0; i < seoul.length; i++){
if (seoul[i].equals("Kim"))
x = i;
}
answer = ("김서방은 " + x + "에 있다");
return answer;
}
}
코드는 크게 네 부분으로 나뉘어 있습니다. 클래스 및 메서드 선언, 변수 초기화, 배열 순회 및 값 비교, 결과 값 반환 부분입니다.
1.클래스 및 메서드 선언
Solution 클래스 안에 solution 메서드를 정의합니다. 이 메서드는 문자열 배열을 입력받아 결과를 문자열로 반환합니다.
class Solution {
public String solution(String[] seoul) {
2.변수 초기화
결과를 저장할 answer 변수와 "Kim"의 인덱스를 저장할 x 변수를 초기화합니다. x는 "Kim"이 배열에 없는 경우를 대비 해서 -1로 초기화합니다.
String answer = "";
int x = -1;
3.배열 순회 및 값 비교
for 문을 사용하여 배열을 순회하면서 각 요소가 "Kim"과 일치하는지 확인한 뒤 해당 인덱스를 x에 저장합니다.
for (int i = 0; i < seoul.length; i++){
if (seoul[i].equals("Kim"))
x = i;
}
4.결과 반환
생성한 결과 문자열을 반환합니다.
answer = ("김서방은 " + x + "에 있다");
return answer;
코드는 아래 문제를 통해 작성하였습니다.
코딩테스트 연습 - 서울에서 김서방 찾기 | 프로그래머스 스쿨 (programmers.co.kr)
'📚 Stack > Java' 카테고리의 다른 글
[JAVA] 오버라이딩과 오버로딩의 차이점 (0) | 2024.04.22 |
---|---|
[JAVA] 자바 8버전 주요 문법 (0) | 2024.04.22 |
[JAVA] 자바에서 자주 사용하는 메서드 알아보기 (0) | 2024.04.14 |
[JAVA] 코딩테스트에서 효율적인 입력 처리 (0) | 2024.04.12 |
[JAVA] 코딩테스트 데이터 범위 문제 이해하기 (0) | 2024.04.11 |
댓글