티스토리 뷰

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

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


입출력 예
seoul                              return
["Jane", "Kim"]       "김서방은 1에 있다"

 

풀이 과정

더보기

또 다른 줄글 문제에 정신이 혼미해졌지만, 어떻게 풀지 고민해보았다. 

//위치를 어떻게 찾지
// for 문 돌려서 요소 하나하나 확인 후에 kim 발견되면 return 하면 되지 않을까?

위 로직을 바탕으로 코드를 짜 보았다. 

1차 코드

function solution(seoul) {
    for(let i = 0; i<=seoul.length; i++){
        if (seoul[i] !== "Kim"){
            i++
        } else { return "김서방은 i에 있다"}
    }
}

로직은 괜찮은 것 같은데 안됐다. 지피티한테 뭐가 문젠지 코드 짜지 말고 알려달라고 했다. 문제는 for 루프 자체가 이미 i를 증가시키고 있는데 i++를 또 적은 것이랑, 문자열 내에서 변수를 삽입하려면 ${i}인 템플릿 리터럴을 사용해야 한다는 것이었다. 알고 있는 사실이었는데 이렇게 디테일하게는 생각 못했다. 

2차 코드

function solution(seoul) {
    for(let i = 0; i<=seoul.length; i++){
        if (seoul[i] !== "Kim"){
        } else { return "김서방은 ${i}에 있다"}
    }
}

이것도 안됐다. 이번엔 for 루프의 종료 조건과 변수 삽입 시 백틱을 넣지 않은 게 문제였다. for 루프의 조건에서 i<=seoul.length로 되어 있어서 문제가 된 건 이번이 처음이 아닌데 자꾸 틀린다. 담엔 안 틀려야지.

정답 코드

function solution(seoul) {
    for(let i = 0; i<seoul.length; i++){
        if (seoul[i] !== "Kim"){
        } else { return `김서방은 ${i}에 있다`}
    }
}

 

김서방 생각보다 쉽게 잡아서 기분이 좋다. 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/04   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30
글 보관함