[TIL] for문 (완전)정복!
오늘은 위코드 중간 시험 날!
생각한거 보다 어렵진 않았지만
너무 쉽게 풀었다 싶더니 역시나 다른 사람들 얘기하는거 듣다보니 잘못 푼거!!
다시 풀기도했고 생각보다 헷갈렸던 두 문제를 풀어보자!
문제 1
getFind
함수를 작성하세요.
문자와 문자열이 주어졌을때,
getFind
함수는 주어진 문자열에서 주어진 문자가 나타나는 첫번째 위치를 반환합니다.
Notes:
문자열의 첫번째 문자는 인덱스 값 0
을 가집니다.
만약 문자열에 해당 문자가 여러번 나타나면, 첫번째로 나타나는 위치를 반환해야 합니다.
만약 문자가 문자열에 존재하지 않는다면, -1
을 반환해야 합니다.
중요!!
indexOf
함수를 사용하지 마세요.
const output = getFind('a', 'I am a hacker')
console.log(output) // --> 2
처음에 대충 읽고 indexOf
로 풀었더니 나중에 사람들 얘기하는거 듣고 부랴부랴 빼서 풀어보았다.
포인트를 집어 보자면 두 문자열을 비교하자
,맞으면 거기서 끝내자
그러면 먼저 하나씩 비교하기 위해 for
문으로 반복하고 맞았을 때 break
시키면 되겠군!
function getFind(filter, sentence) {
let result;
for (i=0; i<sentence.length;i++) {
if(filter == sentence[i]) {
result = i;
break;
} else {
result = -1;
}
} return result;
}
이렇게 풀었는데 맞나 모르겠다?(test는 통과됬으니 넘어가자)
문제2
find_longest_word
함수를 만들어 주세요.
주어진 리스트안에 있는 단어중 가장 긴 단어를 찾을수 있도록 함수를 완성해주세요.
console.log(find_longest_word(["PHP", "Exercises", "Backend"]))
// --> "Exercises"
이문제도 처음 풀고 뭔가 이상해서 다시 풀어본 문제다.
배열의 길이를 .length
로 구하고 그 길이대로 for
문으로 반복시켜 가장 큰 값을 인덱스 했다.
function find_longest_word(arr) {
let result = arr[0];
for (i=0; i < arr.length; i++) {
if (result.length < arr[i].length) {
result = arr[i];
}
}
return result;
}
이문제도 어쨋든 통과니까 맞겠지? 😩
뭔가 잘 정리하고싶었는데.. 아숩.. 뭔가 그래도 for
문에 대해 80%는 익숙해진 느낌이랄까?
주말에는 css와 리팩토링, 그리고 리엑트를 좀 살펴봐야겠다.
Author And Source
이 문제에 관하여([TIL] for문 (완전)정복!), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@choice/TIL-for문-완전정복저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)