안녕하세요.
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문을 얼추는 알고 있었는데 이 기회에 조금 더 알게되었습니다.
이외에는 알고있던 내용들이지만 다시 한 번 되새기며 익힌 것 같습니다.
저처럼 처음해보시는 분들에게 이 글이 조금이나마 도움이 되었으면 좋겠습니다.
'내일배움캠프 > Daily Routine (알고리즘)' 카테고리의 다른 글
[내일배움캠프] 알고리즘 Daily Routine 26. 음양 더하기 (0) | 2024.09.09 |
---|---|
[내일배움캠프] 알고리즘 Daily Routine 25. 나누어 떨어지는 숫자 배열 (0) | 2024.09.06 |
[내일배움캠프] 알고리즘 Daily Routine 23. 콜라스 추측 (0) | 2024.09.05 |
[내일배움캠프] 알고리즘 Daily Routine 22. 두 정수 사이의 합 (0) | 2024.09.04 |
[내일배움캠프] 알고리즘 Daily Routine 21. 하샤드 수 (0) | 2024.09.03 |
댓글