2019년 1월 18일 금요일

#8 알고리즘 연습- Array 안에서 index찾기(JAVA)


서울에서 김서방찾기


문제 설명
String형 배열 seoul의 element중 Kim의 위치 x를 찾아, 김서방은 x에 있다는 String을 반환하는 함수, solution을 완성하세요. seoul에 Kim은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.
제한 사항
  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • Kim은 반드시 seoul 안에 포함되어 있습니다.
입출력 예
seoulreturn
[JaneKim]김서방은 1에 있다



문제풀이 IDEA

반복문으로 순차적 탐색을 해서 index를 찾을 수 있는데
JAVA에서 제공하는 index관련 method를 써보려고 한다




나의코드

1
2
3
4
5
6
7
8
9
10
11
12
import java.util.Arrays;

class Solution {
  public String solution(String[] seoul) { 

     String inde = String.valueOf(Arrays.asList(seoul).indexOf("Kim"));     Array로 받은 seoul을 List로 바꾸어 indexOf 메서드를 쓸 수 있게했다
                                                                            indexOf로 찾고자하는 value를 찾으면 index값을 int로 리턴하므로
String.valueOf()메서드로 String으로 형변환 시켜줬다
     
     return "김서방은 " + inde + "에 있다";                                 +연산자를 이용해 String끼리 연결해줌                            

  }
}





더 공부할 점


JAVA에서 Array와 List


간단하게 이해를 하자면 Array는 크기변경 불가, 메소드 사용에 불편함이 따르는데
고정된 크기의 메모리를 할당하여 사용하므로
삭제된 데이터가 생길시 메모리 낭비가 발생한다(빈공간이 그대로 자리를 차지)

반면 List는 동적으로 크기변경도 가능하고 메소드의 사용이 비교적 편하다
(빈공간이 생기면 원소들을 땡겨 채운다)

좀더 자세히 Array와 List에 대해 알아보기


Arrays.asList()


Arrays.asList()는 기존에 Array를 List로 변환해주는것으로 완전한 ArrayList가 아니라
사이즈를 바꿀수 없다(==원소를 추가해줄수 없다)


출처 : 프로그래머스(https://programmers.co.kr)

댓글 없음:

댓글 쓰기

가장 많이 본 글