서울에서 김서방 찾기

이윤설·2024년 2월 14일
0

제출코드 (오답)

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

        int num = 0;

        for (int i = 0; i < seoul.length; i++) {
            if (seoul[i] == ("Kim")) {
                num = i;
            }
        }


        String answer = "김서방은 " + num + "에 있다";

        return answer;
    }
}

모범답안

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

        int num = 0;

        for (int i = 0; i < seoul.length; i++) {
            if (seoul[i].equals("Kim")) {
                num = i;
            }
        }


        String answer = "김서방은 " + num + "에 있다";

        return answer;
    }
}

모범답안2

public class FindKim {
    public String findKim(String[] seoul){
        int x =  0;

        for(int i=0; i<seoul.length; i++){
            if(seoul[i].equals("Kim")) {
                x = i ;
                break; // "Kim"을 찾은 후 반복 중단 -> 속도 증가
            }
        }

        StringBuilder sb = new StringBuilder();
        sb.append("김서방은 ");
        sb.append(x);
        sb.append("에 있다");

        return sb.toString();
    }
}

배운점

  1. 문자열끼리 같은지 비교할 때는 == 가 아니라 equals()를 사용해야 한다.
  2. 만약 반복문을 통해 찾고자 하는 값을 찾으면 break를 써주도록 하자. 속도가 더 빨라진다.
  3. String 대신 StringBuilder를 사용하는 것이 100배나 빠르다고 한다.
profile
화려한 외면이 아닌 단단한 내면

0개의 댓글