티스토리 뷰
문제 설명
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}에 있다`}
}
}
김서방 생각보다 쉽게 잡아서 기분이 좋다.
'스파르타 > 알고리즘 코드카타' 카테고리의 다른 글
코딩 테스트 - 핸드폰 번호 가리기 (0) | 2024.08.26 |
---|---|
코딩 테스트 - 나누어 떨어지는 숫자 배열 (0) | 2024.08.22 |
코딩 테스트 - 정수 내림차순으로 배치하기 (0) | 2024.08.16 |
코딩 테스트 - 문자열을 정수로 바꾸기 (0) | 2024.08.15 |
코딩 테스트 - 자연수 뒤집어 배열로 만들기 (0) | 2024.08.14 |