[JAVA] 서울에서 김서방 찾기

태로미·2023년 9월 14일
0

Programmers

목록 보기
13/29
post-thumbnail

❓문제


String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요.
seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.



🚫제한


  • seoul은 길이 1 이상, 1000 이하인 배열입니다.
  • seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.
  • "Kim"은 반드시 seoul 안에 포함되어 있습니다.


💻입출력 예


seoulreturn
["Jane", "Kim"]"김서방은 1에 있다"













📝해결


1. for문

class Solution {
	public String solution(String[] seoul) {
  
		String answer = "";
      
		for(int i=0; i<seoul.length; i++) {
			if(seoul[i].equals("Kim")) {
				answer = "김서방은 " + i + "에 있다";
				break;
			}
		}
      
		return answer;
	}
}

✍🏻 equals() 메서드 포스팅 보러 가기

  • equals() 메서드는 String 클래스에서는 주소값 비교가 아닌 두 대상의 "내용" 이 같으면 true, 다르면 false를 return함.
  • 문제 조건에서 “Kim”은 오직 한 번만 나타난다 했으므로 찾는 즉시 if문과 for문을 빠져나오게끔 break문 걸기.
  • 컬렉션(List)을 사용하는 것 보다 for문을 사용하는 것이 좀 더 효율적.

2. 향상된 for문

class Solution {
	public String solution(String[] seoul) {
    
		int x = 0;  // 김서방의 위치

		for(String index : seoul) {
			if (index.equals("Kim")) break;
			x++;
        }

		return "김서방은 "+ x + "에 있다";
    }
}
  • 향상된 for문은 배열이나 컬렉션을 좀 더 쉽게 처리하기 위해 사용.
  • String index는 배열에서 꺼낸 항목을 저장할 변수이며, seoul은 배열.
  • 배열 seoul의 길이만큼 반복하고 자동적으로 for문을 빠져나감.
  • 향상된 for문의 반복 횟수 == 배열의 항목 수(길이)
  • 문제에서는 김서방의 위치를 찾아서 바로 return해야 하므로,
    break문과 증감식을 활용함.






💭마무리

  • Level_1 / 04:11
  • Point
    – 향상된 for문
    – break문

확실히 저번에 equals() 메서드에 대해 포스팅을 했더니 머릿속에 제대로 콱 박혀있어서 이번 문제를 풀 때 원리까지 이해할 수 있어서 좋았다ㅎㅎㅎㅎㅎ
for문은 매일 접하지만 향상된 for문은 어째 자주 활용하지 못하는 느낌이다ㅠㅠ
break문도 적재적소에 배치하면 반복문과 조건문이 실행되는 횟수가 적어지므로 코드의 효율성이 올라간다! 여러모로 빨리 활용해서 적응해야겠다~~🤓


profile
Here And Now

0개의 댓글