알고리즘 문제 풀이 28

[TIL] JavaScript 알고리즘 100일 챌린지 18번째 도전

369 게임이다. 숫자가 주어지면 박수를 몇 번 쳐야하는지 횟수를 리턴하는 문제다. 나는 아래처럼 풀었는데 if 조건을 저렇게 길게 주지 말고, 변수로 하거나 아니면 이렇게 369를 배열에 넣어두고 includes 메소드를 활용하면 좀 더 가독성이 좋아질 것 같다 const nums = ['3', '6', '9'] 아래 영상에서는 match와 regex도 활용했다. regex를 많이 쓰지 않으니 잘 떠오르지 않는다.. https://youtu.be/8ww9zNwVEpc

[TIL] JavaScript 알고리즘 100일 챌린지 17번째 도전

숫자가 주어지면 그에 대응하는 문자열을 리턴하는 문제였다. 나는 객체로 하려다가 배열을 사용했는데 아래 주석 부분처럼 문자열도 가능하다. 그리고 배열에서 찾을때 나는 문자열로 된 숫자를 parseInt를 사용해서 숫자로 바꿔야겠다고 생각했는데 확인해보니 그럴 필요가 없었다. https://youtu.be/PxWJPsXLQEg

[TIL] JavaScript 알고리즘 100일 챌린지 16번째 도전

배열의 pop, shift, unshift 등의 메소드를 이용하여 주어진 배열의 원소들의 자리를 한 칸씩 왼쪽으로 또는 오른쪽으로 옮긴 후 리턴하는 문제였다. 나는 shft나 unshift 같은걸 사용하면 배열의 원소들이 하나씩 자리를 이동한다고 알고 있었기에 이 메소드들을 사용하지 않고 slice를 사용해서 새로운 배열을 만들어 리턴하는 방식으로 풀었는데 이 문제처럼 주어진 배열의 길이가 최대 20 이라면 상관 없을 것 같다. https://youtu.be/ytrnQnDT7tU

[TIL] Javascript 알고리즘 100일 챌린지 15번째 도전

주어진 가위 바위 보에 대한 이기는 경우를 리턴하는 문제였다. 반복문으로 들어온 가위 바위 보 셋트를 확인해서 각 경우마다 대응 방법을 찾아서 리턴하면 되는 간단한 문제였다. 팁은 가위 -> 주먹 바위 -> 보 보 -> 가위 이 구조를 나는 함수와 if 문으로 했는데 객체를 활용할 수도 있더라 const counterpart = { '가위': '바위', '바위': '보', '보': '가위', } https://youtu.be/JVy72QeE0YA

[TIL] Javascript 알고리즘 100일 챌린지 14번째 도전

주어진 두 개의 배열에서 공통된 원소의 갯수를 리턴하는 문제였다. 나는 배열 중에 짧은 배열과 긴 배열을 구분해서 짧은 배열을 기준으로 filter를 사용해서 긴 배열에서 includes 결과가 true 인 것을 모아서 length를 반환하도록 했다. 이 방법 밖에 생각나지 않았는데 또 하나의 방법은 두 배열을 집합으로 보고 두 배열의 갯수 더하기 -> Set을 이용해서 두 배열에서 겹치지 않는 것들의 size를 빼면 공통된 원소들의 갯수를 구하는 것이었다. 배열을 집합으로 생각하는 습관을 들여봐야겠다. 잼나다 https://youtu.be/CS9BgWNE_mM

[TIL] Javascript 알고리즘 100일 챌린지 12번째 도전

주어진 문자열을 뒤집어서 반환하는 문제였다 나는 for문을 사용해서 말그대로 끝 문자를 하나씩 더했는데 다시 보니 reverse 메소드가 있었다... 문자열을 split으로 배열로 한글자씩 쪼개기 -> reverse -> join 이런식으로 하면 한 줄로 간단하게 문자열을 만들 수 있다. https://youtu.be/C72HFa51ZM0