오늘은 위코드 중간 시험 날!
생각한거 보다 어렵진 않았지만
너무 쉽게 풀었다 싶더니 역시나 다른 사람들 얘기하는거 듣다보니 잘못 푼거!!
다시 풀기도했고 생각보다 헷갈렸던 두 문제를 풀어보자!
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는 통과됬으니 넘어가자)
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와 리팩토링, 그리고 리엑트를 좀 살펴봐야겠다.