본문 바로가기
Language/Java

[Programmers | Java | 연습문제 풀이] 서울에서 김서방 찾기 - Solution with Loop & equals() & String.format()

by ㅇ달빛천사ㅇ 2024. 6. 19.
728x90

KDT 실무형 스프링 백엔드 엔지니어 양성과정 6기 | Algorithm CODEKATA

🧑‍💼 서울에서 김서방 찾기

🏷 관련 주제 : Array 인덱스 문자열 비교




✔ Solution with for-statement & equals() & String.format()

class Solution {
    public String solution(String[] seoul) {
        String answer = "";

        for(int x = 0; x < seoul.length; x++) {
            if (seoul[x].equals("Kim")){
                answer = String.format("김서방은 %d에 있다", x);
                break;
            }
        }

        return answer;
    }
}
채점 결과


✔ Solution with forEach-Statement & equals() & String.format()

class Solution {
    public String solution(String[] seoul) {
        String answer = "";
        int x = 0;

        for(String name : seoul) {
            if (name.equals("Kim")){
                answer = String.format("김서방은 %d에 있다", x);
                break;
            }
            x++;
        }
        return answer;
    }
}
채점 결과


💥 오늘 만난 문제 & 나의 시도 💦 & 해결 방법 👍

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


1. 반환할 문자열을 담을 변수 answer 초기화

String answer = "";

2. 반복문을 돌면서 seoul의 원소를 탐색하고 만약 인덱스 x 원소의 값이 "Kim"과 일치하면 answer"김서방은 x에 있다"를 할당하고 반복문 중단

answer에 문자열을 할당할 때에는 String.format("김서방은 %d에 있다", x)를 사용하자.
반복문 중단 키워드는 break


for(int x = 0; x < seoul.length; x++) {
    if (seoul[x].equals("Kim")){
        answer = String.format("김서방은 %d에 있다", x);
        break;
    }
}

3. answer에 할당된 값을 반환하자.

java return answer;

💬 무엇을 새롭게 알았는지

왜 그런진 잘 모르겠지만 answer에 값을 할당할 때,
덧셈 연산자를 이용해 문자열 + 정수 + 문자열을 String answer에 할당하는 것보다
(answer = "김서방은 " + x + "에 있다";)
String.format()을 이용한 코드가 훨씬 속도가 빠르다.


덧셈 연산자를 이용해 문자열 + 정수를 String answer에 할당한 채점 결과
728x90


Top