Code Challenge/codewars
-
[2] Day 1. Primes in numbers [5kyu]Code Challenge/codewars 2023. 3. 12. 16:35
숫자가 주어지면 소인수 분해를 해서 반환하는 함수 5kyu는 처음인 것 같은데 확실히 문제부터가 이게 무슨 말이지 한참 봤다 [...] 예를 보면 좀 더 이해가 쉬움 (예) n = 86240 should return "(2**5)(5)(7**2)(11)" 처음엔 재귀를 돌아야 하나 고민을 했는데, 처음부터 소수를 만날 때 마다 숫자를 나눠버리면 된다는 걸 깨달음! 소인수 분해 코드를 보고도 이해를 못한 걸 보면, 이해하지 못하면 봐도 모른다는 말이 맞다 다른 풀이들은 대체로 이중 for문이나 while을 섞어 썼는데 나는 divide 증가를 하지 않음으로써 단일 반복문으로 해결이 가능하다. 더 나은 결론인지까지는 모르겠다 ㅎ 새로이 배운 것은 Object.entries object로 결과를 저장한 건 좋..
-
Day 7, 8, 9, 10 모아서 정리! [10일 연속 성공]Code Challenge/codewars 2023. 3. 12. 15:54
간신히 문제만 10일 풀었는데 어제 못해서 깨졌다. 10일 연속 성공 ! 다시 오늘부터 시작하기 전에 푼 문제 정리 워낙 바빴어서 정말 쉬운 문제들만 모아서 풀었던 터라 나누기 뭐해서 4일 치는 한 번에 정리 하기로 Square(n) Sum [8kyu] 주어진 숫자 배열에 있는 모든 숫자를 제곱한 뒤, 더해서 값을 반환하는 함수 이전 문제에서 reduce를 배웠던 터라 쉽게 해결 function squareSum(numbers){ const initial = 0; return numbers.reduce((acc, cur) => acc + cur * cur, initial) } Two Sum [6kyu] 주어진 배열에서 2개의 숫자를 더해서 target이 나오면 더한 두 개의 숫자의 인덱스를 배열로 반환하..
-
Day 6. Break camelCase [6kyu]Code Challenge/codewars 2023. 3. 6. 19:29
여러모로 야근으로 바쁜 날들이라 쉬운 걸 하려다가 그래도 양심상 너무 쉬운 건 아닌 것 같아서 Rank up을 고르긴 했는데, 쉬운게 나와줬다..ㅎ camel case로 작성된 문자열을 한 칸 띄워서 만드는 것 단순하게 대문자를 찾아서 공백으로 변경해주면 되서 쉽게 해결! function solution(string) { return string.replace(/([A-Z])/g, “ $1”); } 일단 오늘도 해내었다..!
-
Day 4. String ends with? [7kyu]Code Challenge/codewars 2023. 3. 4. 21:08
javascript로만 하다가 올해 목표한 바가 있어서 c++ 간단한 것부터 풀어보기로.. string 함수 중에 compare를 써서 하는 걸 찾아서 간단하게 해결 #include bool solution(std::string const &str, std::string const &ending) { if(str.length() < ending.length()) { return false; } return str.compare(str.length() - ending.length(), ending.length(), ending) == 0; } 단순하게 compare를 하는 방식은 compare(string)을 넣으면 되는데, 이 경우는 끝이 동일한 지 알아내야 되서, 5번째 줄에 있는 특정 위치로부터 특정..
-
Day 3. Who likes it? [6kyu]Code Challenge/codewars 2023. 3. 4. 20:57
Like를 누른 사람 수에 따라서 반환하는 문자열이 다르게 적히는 문제 function likes(names) { if(names.length == 0) { return "no one likes this"; } else if (names.length == 1) { return `${names[0]} likes this`; } else if (names.length == 2) { return `${names[0]} and ${names[1]} like this`;} else if (names.length == 3) { return `${names[0]}, ${names[1]} and ${names[2]} like this`;} else { return `${names[0]}, ${names[1]} and ..
-
Day 2. hello world [8kyu]Code Challenge/codewars 2023. 3. 2. 21:46
이보다는 쉬운 문제를 풀려고 했었는데, 막상 집에 오니 폰에서 본 문제랑 다르고.. 잘 시간은 다가오고... 오늘 하기로 한 건 하고 싶어서, Fundamental 레벨의 문제를 골랐는데.. 함수로 "hello world!" 찍기..ㅎ const greet = () => "hello world!"; 이런 문제도 있네 [...] 집에 오면서 폰으로 본 문제는 인풋이 들어왔을 때 4글자를 제외하고 #으로 변경하는 문제였는데, repeat을 써야지 하고 확인까지 했지만 찾지 못했다. 언젠간 만나겠지.. 여튼, 늦은 야근까지 하고 힘겨운 나와의 약속 지키기 였는데 좀 애매하게 패스한 것 같지만..오늘은 무리 했으니까 넘어가는 걸로!
-
Day 1. Multiples of 3 or 5 [6kyu]Code Challenge/codewars 2023. 3. 1. 20:52
문제 주어진 숫자보다 작은 수 중에 3 또는 5의 배수인 값을 더하는 로직. 단, 3과 5 둘 다의 배수일 경우 한 번만 더한다. For example) 10일 경우, 3 + 5 + 6 + 9 = 23 (작은 수 이므로 10 미 포함) 내 답 처음에 간단하게 썼는데 이 보다 더 빠른 로직은 못 찾았다. 3과 5 따로 계산한 뒤 15를 빼는 로직도 작성해 보았으나 속도가 더 느리게 나왔다. 아마도 동일한 로직을 쓰기에 함수로 뺐더니 함수 호출하는 시간이 소요되고 나눴을 때 소수점 처리를 위해 Math.floor를 써서 효율이 별로인 가보다. function solution(number){ if(number sum + cur); } 결론 Best answer는 내가 낸 답 이었고, 실제로 다른 사람이 낸 답..
-
IntroCode Challenge/codewars 2023. 3. 1. 20:47
풀 스택 개발을 해왔지만 그럼에도 불구하고 늘 알고리즘이 왜 필요하냐 라는 입장이었다. 내가 하는 개발은 사용자와 정보를 주고받는 화면이 많기 때문에 UX 정도가 좀 더 공부해야 할 덕목이라고 그렇게 생각했었다. 모르기에 당당했고, 무식한 발언 아니었나 싶다. 어떤 것을 개발하던 로직이라는 것이 존재하고, 로직을 얼마나 잘 짜느냐에 성능이 좌우된다. 성능을 고려하지 않아도 될 정도로 사용자가 적다는 건 부끄러운 대답이었다. 사용자가 쓰고 싶지 않은 이유 중에 성능과 관련된 것이 하나라도 있었다면 더더욱 그렇지 않을까 싶다. 그래서 더 늦기 전에 알고리즘과 구조 같은 것들을 고민해보려고 한다. 점점 개발보다는 관리직으로 역할이 바뀌면서 개발을 못하게 되는 상황이 오고 있는 것도 내가 이런 결심을 한 것과 ..