본문 바로가기
내일배움캠프/Daily Routine (알고리즘)

[내일배움캠프] 알고리즘 Daily Routine 24. 서울에서 김서방 찾기

by TIP__ 2024. 9. 6.

안녕하세요.
24회차 과제 "서울에서 김서방 찾기"입니다.

문제 설명

String형 배열 seoul의 element중 "Kim"의 위치 x를 찾아, "김서방은 x에 있다"는 String을 반환하는 함수, solution을 완성하세요.

seoul에 "Kim"은 오직 한 번만 나타나며 잘못된 값이 입력되는 경우는 없습니다.

제한 사항

seoul은 길이 1 이상, 1000 이하인 배열입니다.

seoul의 원소는 길이 1 이상, 20 이하인 문자열입니다.

Kim은 반드시 seoul 안에 포함되어 있습니다.

풀이

1차 시도

인텔리제이에서는 해당 코드로 실행했을 때 정상적으로 "김서방은 1에 있다"가 출력되는데

프로그래머스에서는 "Kim"을 찾지 못해서 "김서방은 2에 있다"가 출력되었다....????

class Solution {
    public String solution(String[] seoul) {
        int cnt = 0;
        for (String fName : seoul){
            if (fName == "Kim"){
                break;
            }
            cnt++;
        }
        return "김서방은 " + cnt + "에 있다";
    }
}

 

2차 시도

"Kim"을 찾는 방법을 equals로 변경하니 정상적으로 작동하는 모습을 보였다.

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

 

 -. 향상된 for 반복문을 사용하여 fName에 seoul에 배열된 문자열을 한 개씩 순차적으로 대입한 후 해당 문자가 찾는 문자인지 확인한다.

 -. 찾는 문자열이 일치하지 않으면 카운팅 횟수를 추가하고 다기 반복문을 시작한다.

 -. 찾는 문자열과 일치하면 반복문을 탈출한다.

 -. 반복문을 탈출했을 때 카운팅 된 cnt가 찾은 문자가 위치한 순서이니 해당 cnt를 출력한다.

배운 것

향상된 for문을 얼추는 알고 있었는데 이 기회에 조금 더 알게되었습니다.

이외에는 알고있던 내용들이지만 다시 한 번 되새기며 익힌 것 같습니다.

 

저처럼 처음해보시는 분들에게 이 글이 조금이나마 도움이 되었으면 좋겠습니다.

댓글