24.02.07 TIL - 알고리즘 : 프로그래머스, 서울에서 김서방 찾기 | Array.IndexOf : 배열에서 특정 요소의 인덱스를 찾는 메서드

JJwoo·2024년 2월 7일

알고리즘

목록 보기
5/18

풀이

public class Solution {
    public string solution(string[] seoul) {
        string answer = "";
        for(int i=0; i<seoul.Length; i++)
        {
            if(seoul[i]=="Kim") 
            {
                answer = "김서방은 " + i + "에 있다";
                break;
            }
        }
        return answer;
    }
}
  1. 배열 순회: for반복문을 사용해 배열 seoul의 모든 요소를 검사

  2. 조건 검사: 각 반복에서 현재 요소 seoul[i]"Kim"과 일치하는지 확인

  1. 결과 할당: "Kim"을 찾으면, answer 문자열에 "김서방은 x에 있다" 형식으로 결과를 할당. x는 i ("Kim"의 위치)

찾으면 break;로 반복 종료.



다른 풀이 - LINQ 사용

public class Solution {
    public string solution(string[] seoul) {
        int index = Array.IndexOf(seoul, "Kim");
        return $"김서방은 {index}에 있다";
    }
}
  • Array.IndexOf 함수를 사용해 배열 내에서 특정 값의 첫 번째 인덱스를 찾는다.
    (배열에서 특정 요소의 인덱스를 찾는 메서드)

  • 찾은 인덱스를 문자열 포매팅을 통해 결과 문자열에 바로 사용.


Array.IndexOf 를 사용하는 예시

플레이어가 특정 아이템을 찾거나 사용할 때, 그 아이템이 인벤토리 배열 내에서 어디에 위치하는지 알아 내고 싶을 때 사용

string[] inventory = { "검", "방패", "포션", "스킬북" };

// 플레이어가 포션 을 사용하려고 할 때
int itemIndex = Array.IndexOf(inventory, "포션");

if (itemIndex != -1)
{
    Console.WriteLine($"포션은 인벤토리의 {itemIndex}번 위치에 있다");
    // 포션 사용 로직 (생략)
}
else
{
    Console.WriteLine("포션은 null");
}
  • inventory 배열 내에서 '"포션"이라는 아이템의 인덱스를 탐색

  • Array.IndexOf 메서드를 사용하여 해당 아이템의 위치를 빠르게 찾아내고 포션 사용 등 상호작용 로직 실행

profile
개발 모코코

0개의 댓글