문제 풀기/C#

24. 서울에서 김서방 찾기(Array.IndexOf(), Array.FindIndex() 함수)

kagan-draca 2025. 1. 15. 14:39

 

기본틀 : 

using System;

public class Solution {
    public string solution(string[] seoul) 
    {
        
    }
}

 

함수의 매개변수로 string[] seoul이라고 문자열 배열이 주어지는 것을 확인했다.

 

for문을 활용해서 string[]의 index를 조사해서 "Kim"을 찾는 방법도 존재하지만,

 

분명히 다른 언어들 처럼 Index를 조회할 수 있는 문법이 존재할 것이라 판단하고 검색한 결과

 

Array.IndexOf()를 찾을 수 있었다.

 

Array.IndexOf()는 

배열에서 특정 값이 처음으로 등장하는 인덱스를 반환하는 함수. 만약, 해당 값이 배열에 없으면 -1을 반환한다.

 

로 기능이 동작한다는 사실을 알게 됐다.

 

using System;

public class Solution {
    public string solution(string[] seoul) {
        int index = Array.IndexOf(seoul,"Kim");
        return "김서방은 "+index+"에 있다";
    }
}

 

add) 추가적으로 

 

Array.FindIndex()는

 

배열에서 조건을 만족하는 첫 번 째 요소의 인덱스를 반환하는 함수로

 

함수의 조건을 표현하기 위해서는 람다 함수를 사용해야 한다.

 

ex)

 

int[] numbers = { 1, 2, 3, 4, 5 };
int index = Array.FindIndex(numbers, x => x > 3);
Console.WriteLine(index);  // 출력: 3

 

위와 같이 int 형 배열 numbers 라는 변수가 주어질 때,

 

Array.FindIndex(numbers, x => x > 3)을 사용하면

 

3보다 큰 수 중 가장 처음 등장하는 요소인 4의 index

 

즉, 3이 결과로 출력된다.